diff --git a/books/bookvol10.2.pamphlet b/books/bookvol10.2.pamphlet
index efb09f8..7a26d5b 100644
--- a/books/bookvol10.2.pamphlet
+++ b/books/bookvol10.2.pamphlet
@@ -7769,7 +7769,8 @@ digraph pic {
 --R cot : % -> %                          coth : % -> %
 --R csc : % -> %                          csch : % -> %
 --R dilog : % -> %                        erf : % -> %
---R exp : % -> %                          integral : (%,Symbol) -> %
+--R exp : % -> %                          fresnelC : % -> %
+--R fresnelS : % -> %                     integral : (%,Symbol) -> %
 --R li : % -> %                           log : % -> %
 --R pi : () -> %                          sec : % -> %
 --R sech : % -> %                         sin : % -> %
@@ -7823,17 +7824,19 @@ o )show LiouvillianFunctionCategory
 \cross{LFCAT}{dilog} &
 \cross{LFCAT}{erf} &
 \cross{LFCAT}{exp} &
-\cross{LFCAT}{integral} \\
+\cross{LFCAT}{frsenelC} \\
+\cross{LFCAT}{frsenelS} &
+\cross{LFCAT}{integral} &
 \cross{LFCAT}{li} &
 \cross{LFCAT}{log} &
-\cross{LFCAT}{pi} &
+\cross{LFCAT}{pi} \\
 \cross{LFCAT}{sec} &
-\cross{LFCAT}{sech} \\
+\cross{LFCAT}{sech} &
 \cross{LFCAT}{sin} &
 \cross{LFCAT}{sinh} &
-\cross{LFCAT}{tan} &
+\cross{LFCAT}{tan} \\
 \cross{LFCAT}{tanh} &
-\cross{LFCAT}{?**?} \\
+\cross{LFCAT}{?**?} &&&
 \end{tabular}
 
 These are directly exported but not implemented:
@@ -7844,6 +7847,8 @@ These are directly exported but not implemented:
  erf : % -> %
  li : % -> %                          
  Si : % -> %
+ fresnelC : % -> %
+ fresnelS : % -> %
 \end{verbatim}
 
 These exports come from \refto{PrimitiveFunctionCategory}()
@@ -7913,6 +7918,12 @@ LiouvillianFunctionCategory(): Category ==
     erf     : $  -> $
       ++ erf(x) returns the error function of x, i.e.
       ++ \spad{2 / sqrt(%pi)} times the integral of \spad{exp(-x**2) dx}.
+    fresnelS : $ -> $
+      ++ fresnelS is the Fresnel integral S, defined by
+      ++ S(x) = integrate(sin(t^2),t=0..x)
+    fresnelC : $ -> $
+      ++ fresnelC is the Fresnel integral C, defined by
+      ++ C(x) = integrate(cos(t^2),t=0..x)
 
 @
 <<LFCAT.dotabb>>=
diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet
index d31717e..11803bb 100644
--- a/books/bookvol10.3.pamphlet
+++ b/books/bookvol10.3.pamphlet
@@ -33787,6 +33787,8 @@ Expression(R:OrderedSet): Exports == Implementation where
       Ci x                               == Ci(x)$LF
       li x                               == li(x)$LF
       dilog x                            == dilog(x)$LF
+      fresnelS x                         == fresnelS(x)$LF
+      fresnelC x                         == fresnelC(x)$LF
       integral(x:%, n:Symbol)            == integral(x, n)$LF
       integral(x:%, s:SegmentBinding %)  == integral(x, s)$LF
 
diff --git a/books/bookvol10.4.pamphlet b/books/bookvol10.4.pamphlet
index d40a654..850d053 100644
--- a/books/bookvol10.4.pamphlet
+++ b/books/bookvol10.4.pamphlet
@@ -7983,6 +7983,8 @@ CommonOperators(): Exports == Implementation where
     opli    := operator("li"::Symbol, 1)
     operf   := operator("erf"::Symbol, 1)
     opli2   := operator("dilog"::Symbol, 1)
+    opfis   := operator("fresnelS"::Symbol, 1)
+    opfic   := operator("fresnelC"::Symbol, 1)
     opGamma     := operator("Gamma"::Symbol, 1)
     opGamma2    := operator("Gamma2"::Symbol, 2)
     opBeta      := operator("Beta"::Symbol, 2)
@@ -8012,7 +8014,8 @@ CommonOperators(): Exports == Implementation where
                    opasinh, opacosh, opatanh, opacoth, opasech, opacsch]
     trigop  := concat(rtrigop, htrigop)
     elemop  := concat(trigop, [oppi, oplog, opexp])
-    primop  := [opei, opli, opsi, opci, operf, opli2, opint, opdint]
+    primop  := [opei, opli, opsi, opci, operf, opli2, opint, opdint,
+                opfis, opfic]
     combop  := [opfact, opperm, opbinom, oppow,
                                          opsum, opdsum, opprod, opdprod]
     specop  := [opGamma, opGamma2, opBeta, opdigamma, oppolygamma, opabs,
@@ -58711,6 +58714,10 @@ LiouvillianFunction(R, F): Exports == Implementation where
       ++ erf(f) denotes the error function
     dilog   : F  -> F
       ++ dilog(f) denotes the dilogarithm
+    fresnelS : F -> F
+      ++ fresnelS(f) denotes the Fresnel integral S
+    fresnelC : F -> F
+      ++ fresnelC(f) denotes the Fresnel integral C
     integral: (F, SE) -> F
       ++ integral(f,x) indefinite integral of f with respect to x.
     integral: (F, SegmentBinding F) -> F
@@ -58741,6 +58748,8 @@ LiouvillianFunction(R, F): Exports == Implementation where
     opci   := operator("Ci"::Symbol)$CommonOperators
     opli2  := operator("dilog"::Symbol)$CommonOperators
     operf  := operator("erf"::Symbol)$CommonOperators
+    opfis  := operator("fresnelS"::Symbol)$CommonOperators
+    opfic  := operator("fresnelC"::Symbol)$CommonOperators
 
     Si x                == opsi x
     Ci x                == opci x
@@ -58748,6 +58757,8 @@ LiouvillianFunction(R, F): Exports == Implementation where
     erf x               == operf x
     li  x               == opli x
     dilog x             == opli2 x
+    fresnelS x          == opfis x
+    fresnelC x          == opfic x
 
     belong? op     == has?(op, "prim")
     isi x          == kernel(opsi, x)
@@ -58755,6 +58766,8 @@ LiouvillianFunction(R, F): Exports == Implementation where
     ierf x         == (zero? x => 0; kernel(operf, x))
 --    ili2 x         == (one? x => INV; kernel(opli2, x))
     ili2 x         == ((x = 1) => INV; kernel(opli2, x))
+    ifis(x:F):F    == (zero? x => 0; kernel(opfis,x))
+    ific(x:F):F    == (zero? x => 0; kernel(opfic,x))
     integrand l    == eval(first l, retract(second l)@K, third l)
     integral(f:F, x:SE) == opint [eval(f, k:=kernel(x)$K, dummy), dummy, k::F]
 
@@ -58811,6 +58824,8 @@ LiouvillianFunction(R, F): Exports == Implementation where
       is?(op, "li"::Symbol)         => opli
       is?(op, "erf"::Symbol)        => operf
       is?(op, "dilog"::Symbol)      => opli2
+      is?(op, "fresnelC"::Symbol)   => opfis
+      is?(op, "fresnelS"::Symbol)   => opfic
       error "Not a Liouvillian operator"
 
     evaluate(opei,    iei)$BasicOperatorFunctions1(F)
@@ -58819,6 +58834,8 @@ LiouvillianFunction(R, F): Exports == Implementation where
     evaluate(opci,    ici)
     evaluate(operf,   ierf)
     evaluate(opli2,   ili2)
+    evaluate(opfis,   ifis)
+    evaluate(opfic,   ific)
     evaluate(opint,   iint)
     derivative(opsi,  (z1:F):F +-> sin(z1) / z1)
     derivative(opci,  (z1:F):F +-> cos(z1) / z1)
@@ -58826,6 +58843,8 @@ LiouvillianFunction(R, F): Exports == Implementation where
     derivative(opli,  (z1:F):F +-> inv log(z1))
     derivative(operf, (z1:F):F +-> 2 * exp(-(z1**2)) / sqrt(pi()))
     derivative(opli2, (z1:F):F +-> log(z1) / (1 - z1))
+    derivative(opfis, (z1:F):F +-> sin(z1**2))
+    derivative(opfic, (z1:F):F +-> cos(z1**2))
     setProperty(opint,SPECIALEQUAL,eqint@((K,K) -> Boolean) pretend None)
     setProperty(opint,SPECIALDIFF,dvint@((List F,SE) -> F) pretend None)
     setProperty(opdint,SPECIALDIFF,dvdint@((List F,SE)->F) pretend None)
@@ -132084,7 +132103,9 @@ PowerSeriesLimitPackage(R,FE): Exports == Implementation where
       is?(ker,"acsc" :: Symbol) => true
       is?(ker,"acsch" :: Symbol) => true
       is?(ker,"acoth" :: Symbol) => true
-      false
+      is?(ker,"fresnelS" :: Symbol) => true
+      is?(ker,"fresnelC" :: Symbol) => true
+      error "finiteValueAtInfinity? true, but unknown value at infinity"
 
     knownValueAtInfinity?: Kernel FE -> Boolean
     knownValueAtInfinity? ker ==
@@ -132214,6 +132235,9 @@ PowerSeriesLimitPackage(R,FE): Exports == Implementation where
             is?(ker,"asec" :: Symbol) => pi()/(2 :: FE)
             is?(ker,"acsc" :: Symbol) => 0
             is?(ker,"acsch" :: Symbol) => 0
+            is?(ker,"fresnelS" :: Symbol) => -sqrt(pi()/(8::FE))
+            is?(ker,"fresnelC" :: Symbol) => -sqrt(pi()/(8::FE))
+            error "finiteValueAtInfinity? true, but unknown value at infinity"
             -- ker must be acoth
             0
           val :: OFE
diff --git a/changelog b/changelog
index bae62de..4c30807 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,15 @@
+20100713 wxh src/axiom-website/patches.html 20100713.01.wxh.patch
+20100713 wxh src/share/algebra/users.daase/index.kaf update for fresnel
+20100713 wxh src/share/algebra/operation.daase update for fresnel
+20100713 wxh src/share/algebra/interp.daase update for fresnel
+20100713 wxh src/share/algebra/dependents.daase/index.kaf update for fresnel
+20100713 wxh src/share/algebra/compress.daase update for fresel
+20100713 wxh src/share/algebra/category.daase update for fresnel
+20100713 wxh src/share/algebra/browse.daase update for fresnel
+20100713 wxh src/algebra/Makefile add ignore for EXPR compile
+20100713 wxh books/bookvol10.4 add fresnelS, fresnelC to LF, COMMONOP, LIMITPS
+20100713 wxh books/bookvol10.3 add fresnelS, fresnelC to EXPR
+20100713 wxh books/bookvol10.2 add fresnelS, fresnelC to LFCAT
 20100712 tpd src/axiom-website/patches.html 20100712.02.tpd.patch
 20100712 tpd src/input/Makefile add derivefail.input
 20100712 tpd src/input/derivefail.input failing integrals from derive 6.10
diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet
index 0f325cf..04407cf 100644
--- a/src/algebra/Makefile.pamphlet
+++ b/src/algebra/Makefile.pamphlet
@@ -15290,7 +15290,7 @@ LAYER18=\
 /*"EXPR" -> {"PI"; "VECTOR"; "IVECTOR"; "IARRAY1"; "VECTCAT-"; "QFCAT"}*/
 /*"EXPR" -> {"FEVALAB"; "DIFEXT"; "DIFRING"; "STEP"; "OINTDOM"; "ORDRING"}*/
 /*"EXPR" -> {"OAGROUP"; "OCAMON"; "OAMON"; "OASGP"; "REAL"; "UPOLYC"}*/
-/*"EXPR" -> {"INS"; "FPS"; "RNS"}*/
+/*"EXPR" -> {"INS"; "FPS"; "RNS"; "LF"}*/
 
 "EXPRSOL" [color="#FF4488",href="bookvol10.4.pdf#nameddest=EXPRSOL"]
 "EXPRSOL" -> "UTSSOL" /* by loadlib */
@@ -16571,6 +16571,16 @@ ${MID}/clique2.spad: ${CLIQUE2FILES}
 	@ cp ${MID}/PAFFFF.nrlib/code.o ${OUT}/PAFFFF.o
 	
 @
+<<ignore>>=
+EXPRDEPS  = LF
+
+${MID}/EXPR.nrlib/code.o: ${MID}/EXPR.spad
+	@echo 1 newcode EXPR.o depends on LF.o
+	@ ( cd ${MID} ; \
+            echo -e ")lib ${EXPRDEPS} \n )co EXPR.spad" | ${INTERPSYS} )
+	@ cp ${MID}/EXPR.nrlib/code.o ${OUT}/EXPR.o
+	
+@
 \section{Broken Files}
 These files are Aldor files
 \begin{verbatim}
diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html
index 1a47357..def7cc5 100644
--- a/src/axiom-website/patches.html
+++ b/src/axiom-website/patches.html
@@ -2992,5 +2992,7 @@ books/bookvol4 document the Makefile build process<br/>
 src/axiom-website/index.html fix CATS href in sidebar<br/>
 <a href="patches/20100712.02.tpd.patch">20100712.02.tpd.patch</a>
 src/input/derivefail.input failing integrals from derive 6.10<br/>
+<a href="patches/20100713.01.wxh.patch">20100713.01.wxh.patch</a>
+books/bookvol10.* add fresnelS, fresnelC to LF, COMMONOP, LIMITPS, EXPR<br/>
  </body>
 </html>
diff --git a/src/share/algebra/browse.daase b/src/share/algebra/browse.daase
index 77e2634..3983e54 100644
--- a/src/share/algebra/browse.daase
+++ b/src/share/algebra/browse.daase
@@ -1,12 +1,12 @@
 
-(2465038 . 3487447480)       
+(2465526 . 3488060042)       
 (-18 A S) 
 ((|constructor| (NIL "One-dimensional-array aggregates serves as models for one-dimensional arrays. Categorically,{} these aggregates are finite linear aggregates with the \\spadatt{shallowlyMutable} property,{} that is,{} any component of the array may be changed without affecting the identity of the overall array. Array data structures are typically represented by a fixed area in storage and cannot efficiently grow or shrink on demand as can list structures (see however \\spadtype{FlexibleArray} for a data structure which is a cross between a list and an array). Iteration over,{} and access to,{} elements of arrays is extremely fast (and often can be optimized to open-code). Insertion and deletion however is generally slow since an entirely new data structure must be created for the result."))) 
 NIL 
 NIL 
 (-19 S) 
 ((|constructor| (NIL "One-dimensional-array aggregates serves as models for one-dimensional arrays. Categorically,{} these aggregates are finite linear aggregates with the \\spadatt{shallowlyMutable} property,{} that is,{} any component of the array may be changed without affecting the identity of the overall array. Array data structures are typically represented by a fixed area in storage and cannot efficiently grow or shrink on demand as can list structures (see however \\spadtype{FlexibleArray} for a data structure which is a cross between a list and an array). Iteration over,{} and access to,{} elements of arrays is extremely fast (and often can be optimized to open-code). Insertion and deletion however is generally slow since an entirely new data structure must be created for the result."))) 
-((-4520 . T) (-4519 . T) (-3973 . T)) 
+((-4522 . T) (-4521 . T) (-3973 . T)) 
 NIL 
 (-20 S) 
 ((|constructor| (NIL "The class of abelian groups,{} \\spadignore{i.e.} additive monoids where each element has an additive inverse. \\blankline Axioms\\spad{\\br} \\tab{5}\\spad{-(-x) = x}\\spad{\\br} \\tab{5}\\spad{x+(-x) = 0}")) (* (($ (|Integer|) $) "\\spad{n*x} is the product of \\spad{x} by the integer \\spad{n}.")) (- (($ $ $) "\\spad{x-y} is the difference of \\spad{x} and \\spad{y} \\spadignore{i.e.} \\spad{x + (-y)}.") (($ $) "\\spad{-x} is the additive inverse of \\spad{x}."))) 
@@ -38,7 +38,7 @@ NIL
 NIL 
 (-27) 
 ((|constructor| (NIL "Model for algebraically closed fields.")) (|zerosOf| (((|List| $) (|SparseUnivariatePolynomial| $) (|Symbol|)) "\\indented{1}{zerosOf(\\spad{p},{} \\spad{y}) returns \\spad{[y1,{}...,{}yn]} such that \\spad{p(\\spad{yi}) = 0}.} \\indented{1}{The \\spad{yi}\\spad{'s} are expressed in radicals if possible,{} and otherwise} \\indented{1}{as implicit algebraic quantities} \\indented{1}{which display as \\spad{'yi}.} \\indented{1}{The returned symbols \\spad{y1},{}...,{}\\spad{yn} are bound in the interpreter} \\indented{1}{to respective root values.} \\blankline \\spad{X} a:SparseUnivariatePolynomial(Integer)\\spad{:=}-3*x^3+2*x+13 \\spad{X} zerosOf(a,{}\\spad{x})") (((|List| $) (|SparseUnivariatePolynomial| $)) "\\indented{1}{zerosOf(\\spad{p}) returns \\spad{[y1,{}...,{}yn]} such that \\spad{p(\\spad{yi}) = 0}.} \\indented{1}{The \\spad{yi}\\spad{'s} are expressed in radicals if possible,{} and otherwise} \\indented{1}{as implicit algebraic quantities.} \\indented{1}{The returned symbols \\spad{y1},{}...,{}\\spad{yn} are bound in the interpreter} \\indented{1}{to respective root values.} \\blankline \\spad{X} a:SparseUnivariatePolynomial(Integer)\\spad{:=}-3*x^3+2*x+13 \\spad{X} zerosOf(a)") (((|List| $) (|Polynomial| $)) "\\indented{1}{zerosOf(\\spad{p}) returns \\spad{[y1,{}...,{}yn]} such that \\spad{p(\\spad{yi}) = 0}.} \\indented{1}{The \\spad{yi}\\spad{'s} are expressed in radicals if possible.} \\indented{1}{Otherwise they are implicit algebraic quantities.} \\indented{1}{The returned symbols \\spad{y1},{}...,{}\\spad{yn} are bound in the interpreter} \\indented{1}{to respective root values.} \\indented{1}{Error: if \\spad{p} has more than one variable \\spad{y}.} \\blankline \\spad{X} a:Polynomial(Integer)\\spad{:=}-3*x^2+2*x-13 \\spad{X} zerosOf(a)")) (|zeroOf| (($ (|SparseUnivariatePolynomial| $) (|Symbol|)) "\\indented{1}{zeroOf(\\spad{p},{} \\spad{y}) returns \\spad{y} such that \\spad{p(y) = 0};} \\indented{1}{if possible,{} \\spad{y} is expressed in terms of radicals.} \\indented{1}{Otherwise it is an implicit algebraic quantity which} \\indented{1}{displays as \\spad{'y}.} \\blankline \\spad{X} a:SparseUnivariatePolynomial(Integer)\\spad{:=}-3*x^3+2*x+13 \\spad{X} zeroOf(a,{}\\spad{x})") (($ (|SparseUnivariatePolynomial| $)) "\\indented{1}{zeroOf(\\spad{p}) returns \\spad{y} such that \\spad{p(y) = 0};} \\indented{1}{if possible,{} \\spad{y} is expressed in terms of radicals.} \\indented{1}{Otherwise it is an implicit algebraic quantity.} \\blankline \\spad{X} a:SparseUnivariatePolynomial(Integer)\\spad{:=}-3*x^3+2*x+13 \\spad{X} zeroOf(a)") (($ (|Polynomial| $)) "\\indented{1}{zeroOf(\\spad{p}) returns \\spad{y} such that \\spad{p(y) = 0}.} \\indented{1}{If possible,{} \\spad{y} is expressed in terms of radicals.} \\indented{1}{Otherwise it is an implicit algebraic quantity.} \\indented{1}{Error: if \\spad{p} has more than one variable \\spad{y}.} \\blankline \\spad{X} a:Polynomial(Integer)\\spad{:=}-3*x^2+2*x-13 \\spad{X} zeroOf(a)")) (|rootsOf| (((|List| $) (|SparseUnivariatePolynomial| $) (|Symbol|)) "\\indented{1}{rootsOf(\\spad{p},{} \\spad{y}) returns \\spad{[y1,{}...,{}yn]} such that \\spad{p(\\spad{yi}) = 0};} \\indented{1}{The returned roots display as \\spad{'y1},{}...,{}\\spad{'yn}.} \\indented{1}{Note that the returned symbols \\spad{y1},{}...,{}\\spad{yn} are bound in the interpreter} \\indented{1}{to respective root values.} \\blankline \\spad{X} a:SparseUnivariatePolynomial(Integer)\\spad{:=}-3*x^3+2*x+13 \\spad{X} rootsOf(a,{}\\spad{x})") (((|List| $) (|SparseUnivariatePolynomial| $)) "\\indented{1}{rootsOf(\\spad{p}) returns \\spad{[y1,{}...,{}yn]} such that \\spad{p(\\spad{yi}) = 0}.} \\indented{1}{Note that the returned symbols \\spad{y1},{}...,{}\\spad{yn} are bound in the interpreter} \\indented{1}{to respective root values.} \\blankline \\spad{X} a:SparseUnivariatePolynomial(Integer)\\spad{:=}-3*x^3+2*x+13 \\spad{X} rootsOf(a)") (((|List| $) (|Polynomial| $)) "\\indented{1}{rootsOf(\\spad{p}) returns \\spad{[y1,{}...,{}yn]} such that \\spad{p(\\spad{yi}) = 0}.} \\indented{1}{Note that the returned symbols \\spad{y1},{}...,{}\\spad{yn} are bound in the} \\indented{1}{interpreter to respective root values.} \\indented{1}{Error: if \\spad{p} has more than one variable \\spad{y}.} \\blankline \\spad{X} a:Polynomial(Integer)\\spad{:=}-3*x^3+2*x+13 \\spad{X} rootsOf(a)")) (|rootOf| (($ (|SparseUnivariatePolynomial| $) (|Symbol|)) "\\indented{1}{rootOf(\\spad{p},{} \\spad{y}) returns \\spad{y} such that \\spad{p(y) = 0}.} \\indented{1}{The object returned displays as \\spad{'y}.} \\blankline \\spad{X} a:SparseUnivariatePolynomial(Integer)\\spad{:=}-3*x^3+2*x+13 \\spad{X} rootOf(a,{}\\spad{x})") (($ (|SparseUnivariatePolynomial| $)) "\\indented{1}{rootOf(\\spad{p}) returns \\spad{y} such that \\spad{p(y) = 0}.} \\blankline \\spad{X} a:SparseUnivariatePolynomial(Integer)\\spad{:=}-3*x^3+2*x+13 \\spad{X} rootOf(a)") (($ (|Polynomial| $)) "\\indented{1}{rootOf(\\spad{p}) returns \\spad{y} such that \\spad{p(y) = 0}.} \\indented{1}{Error: if \\spad{p} has more than one variable \\spad{y}.} \\blankline \\spad{X} a:Polynomial(Integer)\\spad{:=}-3*x^3+2*x+13 \\spad{X} rootOf(a)"))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-28 S R) 
 ((|constructor| (NIL "Model for algebraically closed function spaces.")) (|zerosOf| (((|List| $) $ (|Symbol|)) "\\spad{zerosOf(p,{} y)} returns \\spad{[y1,{}...,{}yn]} such that \\spad{p(\\spad{yi}) = 0}. The \\spad{yi}\\spad{'s} are expressed in radicals if possible,{} and otherwise as implicit algebraic quantities which display as \\spad{'yi}. The returned symbols \\spad{y1},{}...,{}\\spad{yn} are bound in the interpreter to respective root values.") (((|List| $) $) "\\spad{zerosOf(p)} returns \\spad{[y1,{}...,{}yn]} such that \\spad{p(\\spad{yi}) = 0}. The \\spad{yi}\\spad{'s} are expressed in radicals if possible. The returned symbols \\spad{y1},{}...,{}\\spad{yn} are bound in the interpreter to respective root values. Error: if \\spad{p} has more than one variable.")) (|zeroOf| (($ $ (|Symbol|)) "\\spad{zeroOf(p,{} y)} returns \\spad{y} such that \\spad{p(y) = 0}. The value \\spad{y} is expressed in terms of radicals if possible,{}and otherwise as an implicit algebraic quantity which displays as \\spad{'y}.") (($ $) "\\spad{zeroOf(p)} returns \\spad{y} such that \\spad{p(y) = 0}. The value \\spad{y} is expressed in terms of radicals if possible,{}and otherwise as an implicit algebraic quantity. Error: if \\spad{p} has more than one variable.")) (|rootsOf| (((|List| $) $ (|Symbol|)) "\\spad{rootsOf(p,{} y)} returns \\spad{[y1,{}...,{}yn]} such that \\spad{p(\\spad{yi}) = 0}; The returned roots display as \\spad{'y1},{}...,{}\\spad{'yn}. Note that the returned symbols \\spad{y1},{}...,{}\\spad{yn} are bound in the interpreter to respective root values.") (((|List| $) $) "\\spad{rootsOf(p,{} y)} returns \\spad{[y1,{}...,{}yn]} such that \\spad{p(\\spad{yi}) = 0}; Note that the returned symbols \\spad{y1},{}...,{}\\spad{yn} are bound in the interpreter to respective root values. Error: if \\spad{p} has more than one variable \\spad{y}.")) (|rootOf| (($ $ (|Symbol|)) "\\spad{rootOf(p,{}y)} returns \\spad{y} such that \\spad{p(y) = 0}. The object returned displays as \\spad{'y}.") (($ $) "\\spad{rootOf(p)} returns \\spad{y} such that \\spad{p(y) = 0}. Error: if \\spad{p} has more than one variable \\spad{y}."))) 
@@ -46,7 +46,7 @@ NIL
 NIL 
 (-29 R) 
 ((|constructor| (NIL "Model for algebraically closed function spaces.")) (|zerosOf| (((|List| $) $ (|Symbol|)) "\\spad{zerosOf(p,{} y)} returns \\spad{[y1,{}...,{}yn]} such that \\spad{p(\\spad{yi}) = 0}. The \\spad{yi}\\spad{'s} are expressed in radicals if possible,{} and otherwise as implicit algebraic quantities which display as \\spad{'yi}. The returned symbols \\spad{y1},{}...,{}\\spad{yn} are bound in the interpreter to respective root values.") (((|List| $) $) "\\spad{zerosOf(p)} returns \\spad{[y1,{}...,{}yn]} such that \\spad{p(\\spad{yi}) = 0}. The \\spad{yi}\\spad{'s} are expressed in radicals if possible. The returned symbols \\spad{y1},{}...,{}\\spad{yn} are bound in the interpreter to respective root values. Error: if \\spad{p} has more than one variable.")) (|zeroOf| (($ $ (|Symbol|)) "\\spad{zeroOf(p,{} y)} returns \\spad{y} such that \\spad{p(y) = 0}. The value \\spad{y} is expressed in terms of radicals if possible,{}and otherwise as an implicit algebraic quantity which displays as \\spad{'y}.") (($ $) "\\spad{zeroOf(p)} returns \\spad{y} such that \\spad{p(y) = 0}. The value \\spad{y} is expressed in terms of radicals if possible,{}and otherwise as an implicit algebraic quantity. Error: if \\spad{p} has more than one variable.")) (|rootsOf| (((|List| $) $ (|Symbol|)) "\\spad{rootsOf(p,{} y)} returns \\spad{[y1,{}...,{}yn]} such that \\spad{p(\\spad{yi}) = 0}; The returned roots display as \\spad{'y1},{}...,{}\\spad{'yn}. Note that the returned symbols \\spad{y1},{}...,{}\\spad{yn} are bound in the interpreter to respective root values.") (((|List| $) $) "\\spad{rootsOf(p,{} y)} returns \\spad{[y1,{}...,{}yn]} such that \\spad{p(\\spad{yi}) = 0}; Note that the returned symbols \\spad{y1},{}...,{}\\spad{yn} are bound in the interpreter to respective root values. Error: if \\spad{p} has more than one variable \\spad{y}.")) (|rootOf| (($ $ (|Symbol|)) "\\spad{rootOf(p,{}y)} returns \\spad{y} such that \\spad{p(y) = 0}. The object returned displays as \\spad{'y}.") (($ $) "\\spad{rootOf(p)} returns \\spad{y} such that \\spad{p(y) = 0}. Error: if \\spad{p} has more than one variable \\spad{y}."))) 
-((-4516 . T) (-4514 . T) (-4513 . T) ((-4521 "*") . T) (-4512 . T) (-4517 . T) (-4511 . T) (-3973 . T)) 
+((-4518 . T) (-4516 . T) (-4515 . T) ((-4523 "*") . T) (-4514 . T) (-4519 . T) (-4513 . T) (-3973 . T)) 
 NIL 
 (-30) 
 ((|constructor| (NIL "Plot a NON-SINGULAR plane algebraic curve \\spad{p}(\\spad{x},{}\\spad{y}) = 0.")) (|refine| (($ $ (|DoubleFloat|)) "\\indented{1}{refine(\\spad{p},{}\\spad{x}) is not documented} \\blankline \\spad{X} sketch:=makeSketch(x+y,{}\\spad{x},{}\\spad{y},{}\\spad{-1/2}..1/2,{}\\spad{-1/2}..1/2)\\$ACPLOT \\spad{X} refined:=refine(sketch,{}0.1)")) (|makeSketch| (($ (|Polynomial| (|Integer|)) (|Symbol|) (|Symbol|) (|Segment| (|Fraction| (|Integer|))) (|Segment| (|Fraction| (|Integer|)))) "\\indented{1}{makeSketch(\\spad{p},{}\\spad{x},{}\\spad{y},{}a..\\spad{b},{}\\spad{c}..\\spad{d}) creates an ACPLOT of the} \\indented{1}{curve \\spad{p = 0} in the region a \\spad{<=} \\spad{x} \\spad{<=} \\spad{b},{} \\spad{c} \\spad{<=} \\spad{y} \\spad{<=} \\spad{d}.} \\indented{1}{More specifically,{} 'makeSketch' plots a non-singular algebraic curve} \\indented{1}{\\spad{p = 0} in an rectangular region xMin \\spad{<=} \\spad{x} \\spad{<=} xMax,{}} \\indented{1}{yMin \\spad{<=} \\spad{y} \\spad{<=} yMax. The user inputs} \\indented{1}{\\spad{makeSketch(p,{}x,{}y,{}xMin..xMax,{}yMin..yMax)}.} \\indented{1}{Here \\spad{p} is a polynomial in the variables \\spad{x} and \\spad{y} with} \\indented{1}{integer coefficients (\\spad{p} belongs to the domain} \\indented{1}{\\spad{Polynomial Integer}). The case} \\indented{1}{where \\spad{p} is a polynomial in only one of the variables is} \\indented{1}{allowed.\\space{2}The variables \\spad{x} and \\spad{y} are input to specify the} \\indented{1}{the coordinate axes.\\space{2}The horizontal axis is the \\spad{x}-axis and} \\indented{1}{the vertical axis is the \\spad{y}-axis.\\space{2}The rational numbers} \\indented{1}{xMin,{}...,{}yMax specify the boundaries of the region in} \\indented{1}{which the curve is to be plotted.} \\blankline \\spad{X} makeSketch(x+y,{}\\spad{x},{}\\spad{y},{}\\spad{-1/2}..1/2,{}\\spad{-1/2}..1/2)\\$ACPLOT"))) 
@@ -68,7 +68,7 @@ NIL
 ((|constructor| (NIL "The following is all the categories and domains related to projective space and part of the PAFF package"))) 
 NIL 
 NIL 
-(-35 -2570 K) 
+(-35 -1965 K) 
 ((|constructor| (NIL "The following is all the categories and domains related to projective space and part of the PAFF package"))) 
 NIL 
 NIL 
@@ -83,7 +83,7 @@ NIL
 (-38 S) 
 ((|constructor| (NIL "The notion of aggregate serves to model any data structure aggregate,{} designating any collection of objects,{} with heterogenous or homogeneous members,{} with a finite or infinite number of members,{} explicitly or implicitly represented. An aggregate can in principle represent everything from a string of characters to abstract sets such as \"the set of \\spad{x} satisfying relation \\spad{r}(\\spad{x})\" An attribute \\spadatt{finiteAggregate} is used to assert that a domain has a finite number of elements.")) (|#| (((|NonNegativeInteger|) $) "\\spad{\\# u} returns the number of items in \\spad{u}.")) (|sample| (($) "\\spad{sample yields} a value of type \\%")) (|size?| (((|Boolean|) $ (|NonNegativeInteger|)) "\\spad{size?(u,{}n)} tests if \\spad{u} has exactly \\spad{n} elements.")) (|more?| (((|Boolean|) $ (|NonNegativeInteger|)) "\\spad{more?(u,{}n)} tests if \\spad{u} has greater than \\spad{n} elements.")) (|less?| (((|Boolean|) $ (|NonNegativeInteger|)) "\\spad{less?(u,{}n)} tests if \\spad{u} has less than \\spad{n} elements.")) (|empty?| (((|Boolean|) $) "\\spad{empty?(u)} tests if \\spad{u} has 0 elements.")) (|empty| (($) "\\spad{empty()}\\$\\spad{D} creates an aggregate of type \\spad{D} with 0 elements. Note that The \\$\\spad{D} can be dropped if understood by context,{} \\spadignore{e.g.} \\axiom{u: \\spad{D} \\spad{:=} empty()}.")) (|copy| (($ $) "\\spad{copy(u)} returns a top-level (non-recursive) copy of \\spad{u}. Note that for collections,{} \\axiom{copy(\\spad{u}) \\spad{==} [\\spad{x} for \\spad{x} in \\spad{u}]}.")) (|eq?| (((|Boolean|) $ $) "\\spad{eq?(u,{}v)} tests if \\spad{u} and \\spad{v} are same objects."))) 
 NIL 
-((|HasAttribute| |#1| (QUOTE -4519))) 
+((|HasAttribute| |#1| (QUOTE -4521))) 
 (-39) 
 ((|constructor| (NIL "The notion of aggregate serves to model any data structure aggregate,{} designating any collection of objects,{} with heterogenous or homogeneous members,{} with a finite or infinite number of members,{} explicitly or implicitly represented. An aggregate can in principle represent everything from a string of characters to abstract sets such as \"the set of \\spad{x} satisfying relation \\spad{r}(\\spad{x})\" An attribute \\spadatt{finiteAggregate} is used to assert that a domain has a finite number of elements.")) (|#| (((|NonNegativeInteger|) $) "\\spad{\\# u} returns the number of items in \\spad{u}.")) (|sample| (($) "\\spad{sample yields} a value of type \\%")) (|size?| (((|Boolean|) $ (|NonNegativeInteger|)) "\\spad{size?(u,{}n)} tests if \\spad{u} has exactly \\spad{n} elements.")) (|more?| (((|Boolean|) $ (|NonNegativeInteger|)) "\\spad{more?(u,{}n)} tests if \\spad{u} has greater than \\spad{n} elements.")) (|less?| (((|Boolean|) $ (|NonNegativeInteger|)) "\\spad{less?(u,{}n)} tests if \\spad{u} has less than \\spad{n} elements.")) (|empty?| (((|Boolean|) $) "\\spad{empty?(u)} tests if \\spad{u} has 0 elements.")) (|empty| (($) "\\spad{empty()}\\$\\spad{D} creates an aggregate of type \\spad{D} with 0 elements. Note that The \\$\\spad{D} can be dropped if understood by context,{} \\spadignore{e.g.} \\axiom{u: \\spad{D} \\spad{:=} empty()}.")) (|copy| (($ $) "\\spad{copy(u)} returns a top-level (non-recursive) copy of \\spad{u}. Note that for collections,{} \\axiom{copy(\\spad{u}) \\spad{==} [\\spad{x} for \\spad{x} in \\spad{u}]}.")) (|eq?| (((|Boolean|) $ $) "\\spad{eq?(u,{}v)} tests if \\spad{u} and \\spad{v} are same objects."))) 
 ((-3973 . T)) 
@@ -94,7 +94,7 @@ NIL
 NIL 
 (-41 |Key| |Entry|) 
 ((|constructor| (NIL "An association list is a list of key entry pairs which may be viewed as a table. It is a poor mans version of a table: searching for a key is a linear operation.")) (|assoc| (((|Union| (|Record| (|:| |key| |#1|) (|:| |entry| |#2|)) "failed") |#1| $) "\\spad{assoc(k,{}u)} returns the element \\spad{x} in association list \\spad{u} stored with key \\spad{k},{} or \"failed\" if \\spad{u} has no key \\spad{k}."))) 
-((-4519 . T) (-4520 . T) (-3973 . T)) 
+((-4521 . T) (-4522 . T) (-3973 . T)) 
 NIL 
 (-42 S R) 
 ((|constructor| (NIL "The category of associative algebras (modules which are themselves rings). \\blankline Axioms\\spad{\\br} \\tab{5}\\spad{(b+c)::\\% = (b::\\%) + (c::\\%)}\\spad{\\br} \\tab{5}\\spad{(b*c)::\\% = (b::\\%) * (c::\\%)}\\spad{\\br} \\tab{5}\\spad{(1::R)::\\% = 1::\\%}\\spad{\\br} \\tab{5}\\spad{b*x = (b::\\%)*x}\\spad{\\br} \\tab{5}\\spad{r*(a*b) = (r*a)*b = a*(r*b)}")) (|coerce| (($ |#2|) "\\spad{coerce(r)} maps the ring element \\spad{r} to a member of the algebra."))) 
@@ -102,16 +102,16 @@ NIL
 NIL 
 (-43 R) 
 ((|constructor| (NIL "The category of associative algebras (modules which are themselves rings). \\blankline Axioms\\spad{\\br} \\tab{5}\\spad{(b+c)::\\% = (b::\\%) + (c::\\%)}\\spad{\\br} \\tab{5}\\spad{(b*c)::\\% = (b::\\%) * (c::\\%)}\\spad{\\br} \\tab{5}\\spad{(1::R)::\\% = 1::\\%}\\spad{\\br} \\tab{5}\\spad{b*x = (b::\\%)*x}\\spad{\\br} \\tab{5}\\spad{r*(a*b) = (r*a)*b = a*(r*b)}")) (|coerce| (($ |#1|) "\\spad{coerce(r)} maps the ring element \\spad{r} to a member of the algebra."))) 
-((-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-44 UP) 
 ((|constructor| (NIL "Factorization of univariate polynomials with coefficients in \\spadtype{AlgebraicNumber}.")) (|doublyTransitive?| (((|Boolean|) |#1|) "\\spad{doublyTransitive?(p)} is \\spad{true} if \\spad{p} is irreducible over over the field \\spad{K} generated by its coefficients,{} and if \\spad{p(X) / (X - a)} is irreducible over \\spad{K(a)} where \\spad{p(a) = 0}.")) (|split| (((|Factored| |#1|) |#1|) "\\spad{split(p)} returns a prime factorisation of \\spad{p} over its splitting field.")) (|factor| (((|Factored| |#1|) |#1|) "\\spad{factor(p)} returns a prime factorisation of \\spad{p} over the field generated by its coefficients.") (((|Factored| |#1|) |#1| (|List| (|AlgebraicNumber|))) "\\spad{factor(p,{} [a1,{}...,{}an])} returns a prime factorisation of \\spad{p} over the field generated by its coefficients and \\spad{a1},{}...,{}an."))) 
 NIL 
 NIL 
-(-45 -1478 UP UPUP -3094) 
+(-45 -1478 UP UPUP -2477) 
 ((|constructor| (NIL "Function field defined by \\spad{f}(\\spad{x},{} \\spad{y}) = 0.")) (|knownInfBasis| (((|Void|) (|NonNegativeInteger|)) "\\spad{knownInfBasis(n)} is not documented"))) 
-((-4512 |has| (-409 |#2|) (-365)) (-4517 |has| (-409 |#2|) (-365)) (-4511 |has| (-409 |#2|) (-365)) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| (-409 |#2|) (QUOTE (-148))) (|HasCategory| (-409 |#2|) (QUOTE (-150))) (|HasCategory| (-409 |#2|) (QUOTE (-350))) (|HasCategory| (-409 |#2|) (QUOTE (-365))) (-2198 (|HasCategory| (-409 |#2|) (QUOTE (-365))) (|HasCategory| (-409 |#2|) (QUOTE (-350)))) (|HasCategory| (-409 |#2|) (QUOTE (-370))) (|HasCategory| (-409 |#2|) (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| (-409 |#2|) (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| (-409 |#2|) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-370))) (-2198 (|HasCategory| (-409 |#2|) (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| (-409 |#2|) (QUOTE (-365)))) (-12 (|HasCategory| (-409 |#2|) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-409 |#2|) (QUOTE (-365)))) (-2198 (-12 (|HasCategory| (-409 |#2|) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-409 |#2|) (QUOTE (-365)))) (-12 (|HasCategory| (-409 |#2|) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-409 |#2|) (QUOTE (-350))))) (-12 (|HasCategory| (-409 |#2|) (QUOTE (-225))) (|HasCategory| (-409 |#2|) (QUOTE (-365)))) (-2198 (-12 (|HasCategory| (-409 |#2|) (QUOTE (-225))) (|HasCategory| (-409 |#2|) (QUOTE (-365)))) (|HasCategory| (-409 |#2|) (QUOTE (-350))))) 
+((-4514 |has| (-409 |#2|) (-365)) (-4519 |has| (-409 |#2|) (-365)) (-4513 |has| (-409 |#2|) (-365)) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| (-409 |#2|) (QUOTE (-148))) (|HasCategory| (-409 |#2|) (QUOTE (-150))) (|HasCategory| (-409 |#2|) (QUOTE (-350))) (|HasCategory| (-409 |#2|) (QUOTE (-365))) (-2199 (|HasCategory| (-409 |#2|) (QUOTE (-365))) (|HasCategory| (-409 |#2|) (QUOTE (-350)))) (|HasCategory| (-409 |#2|) (QUOTE (-370))) (|HasCategory| (-409 |#2|) (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| (-409 |#2|) (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| (-409 |#2|) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-370))) (-2199 (|HasCategory| (-409 |#2|) (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| (-409 |#2|) (QUOTE (-365)))) (-12 (|HasCategory| (-409 |#2|) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-409 |#2|) (QUOTE (-365)))) (-2199 (-12 (|HasCategory| (-409 |#2|) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-409 |#2|) (QUOTE (-365)))) (-12 (|HasCategory| (-409 |#2|) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-409 |#2|) (QUOTE (-350))))) (-12 (|HasCategory| (-409 |#2|) (QUOTE (-225))) (|HasCategory| (-409 |#2|) (QUOTE (-365)))) (-2199 (-12 (|HasCategory| (-409 |#2|) (QUOTE (-225))) (|HasCategory| (-409 |#2|) (QUOTE (-365)))) (|HasCategory| (-409 |#2|) (QUOTE (-350))))) 
 (-46 R -1478) 
 ((|constructor| (NIL "AlgebraicManipulations provides functions to simplify and expand expressions involving algebraic operators.")) (|rootKerSimp| ((|#2| (|BasicOperator|) |#2| (|NonNegativeInteger|)) "\\spad{rootKerSimp(op,{}f,{}n)} should be local but conditional.")) (|rootSimp| ((|#2| |#2|) "\\spad{rootSimp(f)} transforms every radical of the form \\spad{(a * b**(q*n+r))**(1/n)} appearing in \\spad{f} into \\spad{b**q * (a * b**r)**(1/n)}. This transformation is not in general valid for all complex numbers \\spad{b}.")) (|rootProduct| ((|#2| |#2|) "\\spad{rootProduct(f)} combines every product of the form \\spad{(a**(1/n))**m * (a**(1/s))**t} into a single power of a root of \\spad{a},{} and transforms every radical power of the form \\spad{(a**(1/n))**m} into a simpler form.")) (|rootPower| ((|#2| |#2|) "\\spad{rootPower(f)} transforms every radical power of the form \\spad{(a**(1/n))**m} into a simpler form if \\spad{m} and \\spad{n} have a common factor.")) (|ratPoly| (((|SparseUnivariatePolynomial| |#2|) |#2|) "\\spad{ratPoly(f)} returns a polynomial \\spad{p} such that \\spad{p} has no algebraic coefficients,{} and \\spad{p(f) = 0}.")) (|ratDenom| ((|#2| |#2| (|List| (|Kernel| |#2|))) "\\spad{ratDenom(f,{} [a1,{}...,{}an])} removes the \\spad{ai}\\spad{'s} which are algebraic from the denominators in \\spad{f}.") ((|#2| |#2| (|List| |#2|)) "\\spad{ratDenom(f,{} [a1,{}...,{}an])} removes the \\spad{ai}\\spad{'s} which are algebraic kernels from the denominators in \\spad{f}.") ((|#2| |#2| |#2|) "\\spad{ratDenom(f,{} a)} removes \\spad{a} from the denominators in \\spad{f} if \\spad{a} is an algebraic kernel.") ((|#2| |#2|) "\\spad{ratDenom(f)} rationalizes the denominators appearing in \\spad{f} by moving all the algebraic quantities into the numerators.")) (|rootSplit| ((|#2| |#2|) "\\spad{rootSplit(f)} transforms every radical of the form \\spad{(a/b)**(1/n)} appearing in \\spad{f} into \\spad{a**(1/n) / b**(1/n)}. This transformation is not in general valid for all complex numbers \\spad{a} and \\spad{b}.")) (|coerce| (($ (|SparseMultivariatePolynomial| |#1| (|Kernel| $))) "\\spad{coerce(x)} \\undocumented")) (|denom| (((|SparseMultivariatePolynomial| |#1| (|Kernel| $)) $) "\\spad{denom(x)} \\undocumented")) (|numer| (((|SparseMultivariatePolynomial| |#1| (|Kernel| $)) $) "\\spad{numer(x)} \\undocumented"))) 
 NIL 
@@ -126,23 +126,23 @@ NIL
 ((|HasCategory| |#1| (QUOTE (-301)))) 
 (-49 R |n| |ls| |gamma|) 
 ((|constructor| (NIL "AlgebraGivenByStructuralConstants implements finite rank algebras over a commutative ring,{} given by the structural constants \\spad{gamma} with respect to a fixed basis \\spad{[a1,{}..,{}an]},{} where \\spad{gamma} is an \\spad{n}-vector of \\spad{n} by \\spad{n} matrices \\spad{[(gammaijk) for k in 1..rank()]} defined by \\spad{\\spad{ai} * aj = gammaij1 * a1 + ... + gammaijn * an}. The symbols for the fixed basis have to be given as a list of symbols.")) (|coerce| (($ (|Vector| |#1|)) "\\spad{coerce(v)} converts a vector to a member of the algebra by forming a linear combination with the basis element. Note: the vector is assumed to have length equal to the dimension of the algebra."))) 
-((-4516 |has| |#1| (-558)) (-4514 . T) (-4513 . T)) 
+((-4518 |has| |#1| (-558)) (-4516 . T) (-4515 . T)) 
 ((|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-558)))) 
 (-50 |Key| |Entry|) 
 ((|constructor| (NIL "\\spadtype{AssociationList} implements association lists. These may be viewed as lists of pairs where the first part is a key and the second is the stored value. For example,{} the key might be a string with a persons employee identification number and the value might be a record with personnel data."))) 
-((-4519 . T) (-4520 . T)) 
-((|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#2| (QUOTE (-1090))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-1090))) (-2198 (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2198 (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-842))) (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-1090)))) (-12 (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3649) (|devaluate| |#1|)) (LIST (QUOTE |:|) (QUOTE -4083) (|devaluate| |#2|))))) (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3649) (|devaluate| |#1|)) (LIST (QUOTE |:|) (QUOTE -4083) (|devaluate| |#2|))))) (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-842)))) (-12 (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3649) (|devaluate| |#1|)) (LIST (QUOTE |:|) (QUOTE -4083) (|devaluate| |#2|))))) (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-1090)))))) 
+((-4521 . T) (-4522 . T)) 
+((|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#2| (QUOTE (-1090))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-1090))) (-2199 (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2199 (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-842))) (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-1090)))) (-12 (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3651) (|devaluate| |#1|)) (LIST (QUOTE |:|) (QUOTE -4085) (|devaluate| |#2|))))) (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3651) (|devaluate| |#1|)) (LIST (QUOTE |:|) (QUOTE -4085) (|devaluate| |#2|))))) (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-842)))) (-12 (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3651) (|devaluate| |#1|)) (LIST (QUOTE |:|) (QUOTE -4085) (|devaluate| |#2|))))) (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-1090)))))) 
 (-51 S R E) 
 ((|constructor| (NIL "Abelian monoid ring elements (not necessarily of finite support) of this ring are of the form formal SUM (r_i * e_i) where the r_i are coefficents and the e_i,{} elements of the ordered abelian monoid,{} are thought of as exponents or monomials. The monomials commute with each other,{} and with the coefficients (which themselves may or may not be commutative). See \\spadtype{FiniteAbelianMonoidRing} for the case of finite support a useful common model for polynomials and power series. Conceptually at least,{} only the non-zero terms are ever operated on.")) (/ (($ $ |#2|) "\\spad{p/c} divides \\spad{p} by the coefficient \\spad{c}.")) (|coefficient| ((|#2| $ |#3|) "\\spad{coefficient(p,{}e)} extracts the coefficient of the monomial with exponent \\spad{e} from polynomial \\spad{p},{} or returns zero if exponent is not present.")) (|reductum| (($ $) "\\spad{reductum(u)} returns \\spad{u} minus its leading monomial returns zero if handed the zero element.")) (|monomial| (($ |#2| |#3|) "\\spad{monomial(r,{}e)} makes a term from a coefficient \\spad{r} and an exponent \\spad{e}.")) (|monomial?| (((|Boolean|) $) "\\spad{monomial?(p)} tests if \\spad{p} is a single monomial.")) (|map| (($ (|Mapping| |#2| |#2|) $) "\\spad{map(fn,{}u)} maps function \\spad{fn} onto the coefficients of the non-zero monomials of \\spad{u}.")) (|degree| ((|#3| $) "\\spad{degree(p)} returns the maximum of the exponents of the terms of \\spad{p}.")) (|leadingMonomial| (($ $) "\\spad{leadingMonomial(p)} returns the monomial of \\spad{p} with the highest degree.")) (|leadingCoefficient| ((|#2| $) "\\spad{leadingCoefficient(p)} returns the coefficient highest degree term of \\spad{p}."))) 
 NIL 
 ((|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-365)))) 
 (-52 R E) 
 ((|constructor| (NIL "Abelian monoid ring elements (not necessarily of finite support) of this ring are of the form formal SUM (r_i * e_i) where the r_i are coefficents and the e_i,{} elements of the ordered abelian monoid,{} are thought of as exponents or monomials. The monomials commute with each other,{} and with the coefficients (which themselves may or may not be commutative). See \\spadtype{FiniteAbelianMonoidRing} for the case of finite support a useful common model for polynomials and power series. Conceptually at least,{} only the non-zero terms are ever operated on.")) (/ (($ $ |#1|) "\\spad{p/c} divides \\spad{p} by the coefficient \\spad{c}.")) (|coefficient| ((|#1| $ |#2|) "\\spad{coefficient(p,{}e)} extracts the coefficient of the monomial with exponent \\spad{e} from polynomial \\spad{p},{} or returns zero if exponent is not present.")) (|reductum| (($ $) "\\spad{reductum(u)} returns \\spad{u} minus its leading monomial returns zero if handed the zero element.")) (|monomial| (($ |#1| |#2|) "\\spad{monomial(r,{}e)} makes a term from a coefficient \\spad{r} and an exponent \\spad{e}.")) (|monomial?| (((|Boolean|) $) "\\spad{monomial?(p)} tests if \\spad{p} is a single monomial.")) (|map| (($ (|Mapping| |#1| |#1|) $) "\\spad{map(fn,{}u)} maps function \\spad{fn} onto the coefficients of the non-zero monomials of \\spad{u}.")) (|degree| ((|#2| $) "\\spad{degree(p)} returns the maximum of the exponents of the terms of \\spad{p}.")) (|leadingMonomial| (($ $) "\\spad{leadingMonomial(p)} returns the monomial of \\spad{p} with the highest degree.")) (|leadingCoefficient| ((|#1| $) "\\spad{leadingCoefficient(p)} returns the coefficient highest degree term of \\spad{p}."))) 
-(((-4521 "*") |has| |#1| (-172)) (-4512 |has| |#1| (-558)) (-4513 . T) (-4514 . T) (-4516 . T)) 
+(((-4523 "*") |has| |#1| (-172)) (-4514 |has| |#1| (-558)) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-53) 
 ((|constructor| (NIL "Algebraic closure of the rational numbers,{} with mathematical =")) (|norm| (($ $ (|List| (|Kernel| $))) "\\spad{norm(f,{}l)} computes the norm of the algebraic number \\spad{f} with respect to the extension generated by kernels \\spad{l}") (($ $ (|Kernel| $)) "\\spad{norm(f,{}k)} computes the norm of the algebraic number \\spad{f} with respect to the extension generated by kernel \\spad{k}") (((|SparseUnivariatePolynomial| $) (|SparseUnivariatePolynomial| $) (|List| (|Kernel| $))) "\\spad{norm(p,{}l)} computes the norm of the polynomial \\spad{p} with respect to the extension generated by kernels \\spad{l}") (((|SparseUnivariatePolynomial| $) (|SparseUnivariatePolynomial| $) (|Kernel| $)) "\\spad{norm(p,{}k)} computes the norm of the polynomial \\spad{p} with respect to the extension generated by kernel \\spad{k}")) (|reduce| (($ $) "\\spad{reduce(f)} simplifies all the unreduced algebraic numbers present in \\spad{f} by applying their defining relations.")) (|denom| (((|SparseMultivariatePolynomial| (|Integer|) (|Kernel| $)) $) "\\spad{denom(f)} returns the denominator of \\spad{f} viewed as a polynomial in the kernels over \\spad{Z}.")) (|numer| (((|SparseMultivariatePolynomial| (|Integer|) (|Kernel| $)) $) "\\spad{numer(f)} returns the numerator of \\spad{f} viewed as a polynomial in the kernels over \\spad{Z}.")) (|coerce| (($ (|SparseMultivariatePolynomial| (|Integer|) (|Kernel| $))) "\\spad{coerce(p)} returns \\spad{p} viewed as an algebraic number."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 ((|HasCategory| $ (QUOTE (-1047))) (|HasCategory| $ (LIST (QUOTE -1037) (QUOTE (-568))))) 
 (-54) 
 ((|constructor| (NIL "This domain implements anonymous functions"))) 
@@ -150,7 +150,7 @@ NIL
 NIL 
 (-55 R |lVar|) 
 ((|constructor| (NIL "The domain of antisymmetric polynomials.")) (|map| (($ (|Mapping| |#1| |#1|) $) "\\spad{map(f,{}p)} changes each coefficient of \\spad{p} by the application of \\spad{f}.")) (|degree| (((|NonNegativeInteger|) $) "\\spad{degree(p)} returns the homogeneous degree of \\spad{p}.")) (|retractable?| (((|Boolean|) $) "\\spad{retractable?(p)} tests if \\spad{p} is a 0-form,{} \\spadignore{i.e.} if degree(\\spad{p}) = 0.")) (|homogeneous?| (((|Boolean|) $) "\\spad{homogeneous?(p)} tests if all of the terms of \\spad{p} have the same degree.")) (|exp| (($ (|List| (|Integer|))) "\\spad{exp([i1,{}...in])} returns \\spad{u_1\\^{i_1} ... u_n\\^{i_n}}")) (|generator| (($ (|NonNegativeInteger|)) "\\spad{generator(n)} returns the \\spad{n}th multiplicative generator,{} a basis term.")) (|coefficient| ((|#1| $ $) "\\spad{coefficient(p,{}u)} returns the coefficient of the term in \\spad{p} containing the basis term \\spad{u} if such a term exists,{} and 0 otherwise. Error: if the second argument \\spad{u} is not a basis element.")) (|reductum| (($ $) "\\spad{reductum(p)},{} where \\spad{p} is an antisymmetric polynomial,{} returns \\spad{p} minus the leading term of \\spad{p} if \\spad{p} has at least two terms,{} and 0 otherwise.")) (|leadingBasisTerm| (($ $) "\\spad{leadingBasisTerm(p)} returns the leading basis term of antisymmetric polynomial \\spad{p}.")) (|leadingCoefficient| ((|#1| $) "\\spad{leadingCoefficient(p)} returns the leading coefficient of antisymmetric polynomial \\spad{p}."))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-56 S) 
 ((|constructor| (NIL "\\spadtype{AnyFunctions1} implements several utility functions for working with \\spadtype{Any}. These functions are used to go back and forth between objects of \\spadtype{Any} and objects of other types.")) (|retract| ((|#1| (|Any|)) "\\spad{retract(a)} tries to convert \\spad{a} into an object of type \\spad{S}. If possible,{} it returns the object. Error: if no such retraction is possible.")) (|retractable?| (((|Boolean|) (|Any|)) "\\spad{retractable?(a)} tests if \\spad{a} can be converted into an object of type \\spad{S}.")) (|retractIfCan| (((|Union| |#1| "failed") (|Any|)) "\\spad{retractIfCan(a)} tries change \\spad{a} into an object of type \\spad{S}. If it can,{} then such an object is returned. Otherwise,{} \"failed\" is returned.")) (|coerce| (((|Any|) |#1|) "\\spad{coerce(s)} creates an object of \\spadtype{Any} from the object \\spad{s} of type \\spad{S}."))) 
@@ -178,7 +178,7 @@ NIL
 NIL 
 (-62 R |Row| |Col|) 
 ((|constructor| (NIL "Two dimensional array categories and domains")) (|map!| (($ (|Mapping| |#1| |#1|) $) "\\indented{1}{map!(\\spad{f},{}a)\\space{2}assign \\spad{a(i,{}j)} to \\spad{f(a(i,{}j))}} \\indented{1}{for all \\spad{i,{} j}} \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}10) \\spad{X} map!(-,{}arr)")) (|map| (($ (|Mapping| |#1| |#1| |#1|) $ $ |#1|) "\\indented{1}{map(\\spad{f},{}a,{}\\spad{b},{}\\spad{r}) returns \\spad{c},{} where \\spad{c(i,{}j) = f(a(i,{}j),{}b(i,{}j))}} \\indented{1}{when both \\spad{a(i,{}j)} and \\spad{b(i,{}j)} exist;} \\indented{1}{else \\spad{c(i,{}j) = f(r,{} b(i,{}j))} when \\spad{a(i,{}j)} does not exist;} \\indented{1}{else \\spad{c(i,{}j) = f(a(i,{}j),{}r)} when \\spad{b(i,{}j)} does not exist;} \\indented{1}{otherwise \\spad{c(i,{}j) = f(r,{}r)}.} \\blankline \\spad{X} adder(a:Integer,{}b:Integer):Integer \\spad{==} a+b \\spad{X} \\spad{arr1} : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}10) \\spad{X} \\spad{arr2} : \\spad{ARRAY2} INT \\spad{:=} new(3,{}3,{}10) \\spad{X} map(adder,{}\\spad{arr1},{}\\spad{arr2},{}17)") (($ (|Mapping| |#1| |#1| |#1|) $ $) "\\indented{1}{map(\\spad{f},{}a,{}\\spad{b}) returns \\spad{c},{} where \\spad{c(i,{}j) = f(a(i,{}j),{}b(i,{}j))}} \\indented{1}{for all \\spad{i,{} j}} \\blankline \\spad{X} adder(a:Integer,{}b:Integer):Integer \\spad{==} a+b \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}10) \\spad{X} map(adder,{}arr,{}arr)") (($ (|Mapping| |#1| |#1|) $) "\\indented{1}{map(\\spad{f},{}a) returns \\spad{b},{} where \\spad{b(i,{}j) = f(a(i,{}j))}} \\indented{1}{for all \\spad{i,{} j}} \\blankline \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}10) \\spad{X} map(-,{}arr) \\spad{X} map((\\spad{x} +-> \\spad{x} + \\spad{x}),{}arr)")) (|setColumn!| (($ $ (|Integer|) |#3|) "\\indented{1}{setColumn!(\\spad{m},{}\\spad{j},{}\\spad{v}) sets to \\spad{j}th column of \\spad{m} to \\spad{v}} \\blankline \\spad{X} T1:=TwoDimensionalArray Integer \\spad{X} arr:T1:= new(5,{}4,{}0) \\spad{X} T2:=OneDimensionalArray Integer \\spad{X} acol:=construct([1,{}2,{}3,{}4,{}5]::List(INT))\\$\\spad{T2} \\spad{X} setColumn!(arr,{}1,{}acol)\\$\\spad{T1}")) (|setRow!| (($ $ (|Integer|) |#2|) "\\indented{1}{setRow!(\\spad{m},{}\\spad{i},{}\\spad{v}) sets to \\spad{i}th row of \\spad{m} to \\spad{v}} \\blankline \\spad{X} T1:=TwoDimensionalArray Integer \\spad{X} arr:T1:= new(5,{}4,{}0) \\spad{X} T2:=OneDimensionalArray Integer \\spad{X} arow:=construct([1,{}2,{}3,{}4]::List(INT))\\$\\spad{T2} \\spad{X} setRow!(arr,{}1,{}arow)\\$\\spad{T1}")) (|qsetelt!| ((|#1| $ (|Integer|) (|Integer|) |#1|) "\\indented{1}{qsetelt!(\\spad{m},{}\\spad{i},{}\\spad{j},{}\\spad{r}) sets the element in the \\spad{i}th row and \\spad{j}th} \\indented{1}{column of \\spad{m} to \\spad{r}} \\indented{1}{NO error check to determine if indices are in proper ranges} \\blankline \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}0) \\spad{X} qsetelt!(arr,{}1,{}1,{}17)")) (|setelt| ((|#1| $ (|Integer|) (|Integer|) |#1|) "\\indented{1}{setelt(\\spad{m},{}\\spad{i},{}\\spad{j},{}\\spad{r}) sets the element in the \\spad{i}th row and \\spad{j}th} \\indented{1}{column of \\spad{m} to \\spad{r}} \\indented{1}{error check to determine if indices are in proper ranges} \\blankline \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}0) \\spad{X} setelt(arr,{}1,{}1,{}17)")) (|parts| (((|List| |#1|) $) "\\indented{1}{parts(\\spad{m}) returns a list of the elements of \\spad{m} in row major order} \\blankline \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}10) \\spad{X} parts(arr)")) (|column| ((|#3| $ (|Integer|)) "\\indented{1}{column(\\spad{m},{}\\spad{j}) returns the \\spad{j}th column of \\spad{m}} \\indented{1}{error check to determine if index is in proper ranges} \\blankline \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}10) \\spad{X} column(arr,{}1)")) (|row| ((|#2| $ (|Integer|)) "\\indented{1}{row(\\spad{m},{}\\spad{i}) returns the \\spad{i}th row of \\spad{m}} \\indented{1}{error check to determine if index is in proper ranges} \\blankline \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}10) \\spad{X} row(arr,{}1)")) (|qelt| ((|#1| $ (|Integer|) (|Integer|)) "\\indented{1}{qelt(\\spad{m},{}\\spad{i},{}\\spad{j}) returns the element in the \\spad{i}th row and \\spad{j}th} \\indented{1}{column of the array \\spad{m}} \\indented{1}{NO error check to determine if indices are in proper ranges} \\blankline \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}10) \\spad{X} qelt(arr,{}1,{}1)")) (|elt| ((|#1| $ (|Integer|) (|Integer|) |#1|) "\\indented{1}{elt(\\spad{m},{}\\spad{i},{}\\spad{j},{}\\spad{r}) returns the element in the \\spad{i}th row and \\spad{j}th} \\indented{1}{column of the array \\spad{m},{} if \\spad{m} has an \\spad{i}th row and a \\spad{j}th column,{}} \\indented{1}{and returns \\spad{r} otherwise} \\blankline \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}10) \\spad{X} elt(arr,{}1,{}1,{}6) \\spad{X} elt(arr,{}1,{}10,{}6)") ((|#1| $ (|Integer|) (|Integer|)) "\\indented{1}{elt(\\spad{m},{}\\spad{i},{}\\spad{j}) returns the element in the \\spad{i}th row and \\spad{j}th} \\indented{1}{column of the array \\spad{m}} \\indented{1}{error check to determine if indices are in proper ranges} \\blankline \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}10) \\spad{X} elt(arr,{}1,{}1)")) (|ncols| (((|NonNegativeInteger|) $) "\\indented{1}{ncols(\\spad{m}) returns the number of columns in the array \\spad{m}} \\blankline \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}10) \\spad{X} ncols(arr)")) (|nrows| (((|NonNegativeInteger|) $) "\\indented{1}{nrows(\\spad{m}) returns the number of rows in the array \\spad{m}} \\blankline \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}10) \\spad{X} nrows(arr)")) (|maxColIndex| (((|Integer|) $) "\\indented{1}{maxColIndex(\\spad{m}) returns the index of the 'last' column of the array \\spad{m}} \\blankline \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}10) \\spad{X} maxColIndex(arr)")) (|minColIndex| (((|Integer|) $) "\\indented{1}{minColIndex(\\spad{m}) returns the index of the 'first' column of the array \\spad{m}} \\blankline \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}10) \\spad{X} minColIndex(arr)")) (|maxRowIndex| (((|Integer|) $) "\\indented{1}{maxRowIndex(\\spad{m}) returns the index of the 'last' row of the array \\spad{m}} \\blankline \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}10) \\spad{X} maxRowIndex(arr)")) (|minRowIndex| (((|Integer|) $) "\\indented{1}{minRowIndex(\\spad{m}) returns the index of the 'first' row of the array \\spad{m}} \\blankline \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}10) \\spad{X} minRowIndex(arr)")) (|fill!| (($ $ |#1|) "\\indented{1}{fill!(\\spad{m},{}\\spad{r}) fills \\spad{m} with \\spad{r}\\spad{'s}} \\blankline \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}0) \\spad{X} fill!(arr,{}10)")) (|new| (($ (|NonNegativeInteger|) (|NonNegativeInteger|) |#1|) "\\indented{1}{new(\\spad{m},{}\\spad{n},{}\\spad{r}) is an \\spad{m}-by-\\spad{n} array all of whose entries are \\spad{r}} \\blankline \\spad{X} arr : \\spad{ARRAY2} INT \\spad{:=} new(5,{}4,{}0)")) (|finiteAggregate| ((|attribute|) "two-dimensional arrays are finite")) (|shallowlyMutable| ((|attribute|) "one may destructively alter arrays"))) 
-((-4519 . T) (-4520 . T) (-3973 . T)) 
+((-4521 . T) (-4522 . T) (-3973 . T)) 
 NIL 
 (-63 A B) 
 ((|constructor| (NIL "This package provides tools for operating on one-dimensional arrays with unary and binary functions involving different underlying types")) (|map| (((|OneDimensionalArray| |#2|) (|Mapping| |#2| |#1|) (|OneDimensionalArray| |#1|)) "\\indented{1}{map(\\spad{f},{}a) applies function \\spad{f} to each member of one-dimensional array} \\indented{1}{\\spad{a} resulting in a new one-dimensional array over a} \\indented{1}{possibly different underlying domain.} \\blankline \\spad{X} \\spad{T1:=OneDimensionalArrayFunctions2}(Integer,{}Integer) \\spad{X} map(\\spad{x+}-\\spad{>x+2},{}[\\spad{i} for \\spad{i} in 1..10])\\$\\spad{T1}")) (|reduce| ((|#2| (|Mapping| |#2| |#1| |#2|) (|OneDimensionalArray| |#1|) |#2|) "\\indented{1}{reduce(\\spad{f},{}a,{}\\spad{r}) applies function \\spad{f} to each} \\indented{1}{successive element of the} \\indented{1}{one-dimensional array \\spad{a} and an accumulant initialized to \\spad{r}.} \\indented{1}{For example,{} \\spad{reduce(_+\\$Integer,{}[1,{}2,{}3],{}0)}} \\indented{1}{does \\spad{3+(2+(1+0))}. Note that third argument \\spad{r}} \\indented{1}{may be regarded as the identity element for the function \\spad{f}.} \\blankline \\spad{X} \\spad{T1:=OneDimensionalArrayFunctions2}(Integer,{}Integer) \\spad{X} adder(a:Integer,{}b:Integer):Integer \\spad{==} a+b \\spad{X} reduce(adder,{}[\\spad{i} for \\spad{i} in 1..10],{}0)\\$\\spad{T1}")) (|scan| (((|OneDimensionalArray| |#2|) (|Mapping| |#2| |#1| |#2|) (|OneDimensionalArray| |#1|) |#2|) "\\indented{1}{scan(\\spad{f},{}a,{}\\spad{r}) successively applies} \\indented{1}{\\spad{reduce(f,{}x,{}r)} to more and more leading sub-arrays} \\indented{1}{\\spad{x} of one-dimensional array \\spad{a}.} \\indented{1}{More precisely,{} if \\spad{a} is \\spad{[a1,{}a2,{}...]},{} then} \\indented{1}{\\spad{scan(f,{}a,{}r)} returns} \\indented{1}{\\spad{[reduce(f,{}[a1],{}r),{}reduce(f,{}[a1,{}a2],{}r),{}...]}.} \\blankline \\spad{X} \\spad{T1:=OneDimensionalArrayFunctions2}(Integer,{}Integer) \\spad{X} adder(a:Integer,{}b:Integer):Integer \\spad{==} a+b \\spad{X} scan(adder,{}[\\spad{i} for \\spad{i} in 1..10],{}0)\\$\\spad{T1}"))) 
@@ -186,65 +186,65 @@ NIL
 NIL 
 (-64 S) 
 ((|constructor| (NIL "This is the domain of 1-based one dimensional arrays")) (|oneDimensionalArray| (($ (|NonNegativeInteger|) |#1|) "\\indented{1}{oneDimensionalArray(\\spad{n},{}\\spad{s}) creates an array from \\spad{n} copies of element \\spad{s}} \\blankline \\spad{X} oneDimensionalArray(10,{}0.0)") (($ (|List| |#1|)) "\\indented{1}{oneDimensionalArray(\\spad{l}) creates an array from a list of elements \\spad{l}} \\blankline \\spad{X} oneDimensionalArray [\\spad{i**2} for \\spad{i} in 1..10]"))) 
-((-4520 . T) (-4519 . T)) 
-((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (-2198 (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
+((-4522 . T) (-4521 . T)) 
+((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (-2199 (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
 (-65 R) 
 ((|constructor| (NIL "A TwoDimensionalArray is a two dimensional array with 1-based indexing for both rows and columns.")) (|shallowlyMutable| ((|attribute|) "One may destructively alter TwoDimensionalArray\\spad{'s}."))) 
-((-4519 . T) (-4520 . T)) 
+((-4521 . T) (-4522 . T)) 
 ((|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090))))) 
-(-66 -3391) 
+(-66 -3393) 
 ((|constructor| (NIL "\\spadtype{ASP10} produces Fortran for Type 10 ASPs,{} needed for NAG routine d02kef. This ASP computes the values of a set of functions,{} for example: \\blankline \\tab{5}SUBROUTINE COEFFN(\\spad{P},{}\\spad{Q},{}DQDL,{}\\spad{X},{}ELAM,{}JINT)\\spad{\\br} \\tab{5}DOUBLE PRECISION ELAM,{}\\spad{P},{}\\spad{Q},{}\\spad{X},{}DQDL\\spad{\\br} \\tab{5}INTEGER JINT\\spad{\\br} \\tab{5}\\spad{P=1}.0D0\\spad{\\br} \\tab{5}\\spad{Q=}((\\spad{-1}.0D0*X**3)+ELAM*X*X-2.0D0)/(\\spad{X*X})\\spad{\\br} \\tab{5}\\spad{DQDL=1}.0D0\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END")) (|coerce| (($ (|Vector| (|FortranExpression| (|construct| (QUOTE JINT) (QUOTE X) (QUOTE ELAM)) (|construct|) (|MachineFloat|)))) "\\spad{coerce(f)} takes objects from the appropriate instantiation of \\spadtype{FortranExpression} and turns them into an ASP."))) 
 NIL 
 NIL 
-(-67 -3391) 
+(-67 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp12} produces Fortran for Type 12 ASPs,{} needed for NAG routine d02kef etc.,{} for example: \\blankline \\tab{5}SUBROUTINE MONIT (MAXIT,{}IFLAG,{}ELAM,{}FINFO)\\spad{\\br} \\tab{5}DOUBLE PRECISION ELAM,{}FINFO(15)\\spad{\\br} \\tab{5}INTEGER MAXIT,{}IFLAG\\spad{\\br} \\tab{5}IF(MAXIT.EQ.\\spad{-1})THEN\\spad{\\br} \\tab{7}PRINT*,{}\"Output from Monit\"\\spad{\\br} \\tab{5}ENDIF\\spad{\\br} \\tab{5}PRINT*,{}MAXIT,{}IFLAG,{}ELAM,{}(FINFO(\\spad{I}),{}\\spad{I=1},{}4)\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END\\")) (|outputAsFortran| (((|Void|)) "\\spad{outputAsFortran()} generates the default code for \\spadtype{ASP12}."))) 
 NIL 
 NIL 
-(-68 -3391) 
+(-68 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp19} produces Fortran for Type 19 ASPs,{} evaluating a set of functions and their jacobian at a given point,{} for example: \\blankline \\tab{5}SUBROUTINE \\spad{LSFUN2}(\\spad{M},{}\\spad{N},{}\\spad{XC},{}FVECC,{}FJACC,{}\\spad{LJC})\\spad{\\br} \\tab{5}DOUBLE PRECISION FVECC(\\spad{M}),{}FJACC(\\spad{LJC},{}\\spad{N}),{}\\spad{XC}(\\spad{N})\\spad{\\br} \\tab{5}INTEGER \\spad{M},{}\\spad{N},{}\\spad{LJC}\\spad{\\br} \\tab{5}INTEGER \\spad{I},{}\\spad{J}\\spad{\\br} \\tab{5}DO 25003 \\spad{I=1},{}\\spad{LJC}\\spad{\\br} \\tab{7}DO 25004 \\spad{J=1},{}\\spad{N}\\spad{\\br} \\tab{9}FJACC(\\spad{I},{}\\spad{J})\\spad{=0}.0D0\\spad{\\br} 25004 CONTINUE\\spad{\\br} 25003 CONTINUE\\spad{\\br} \\tab{5}FVECC(1)=((\\spad{XC}(1)\\spad{-0}.14D0)\\spad{*XC}(3)+(15.0D0*XC(1)\\spad{-2}.1D0)\\spad{*XC}(2)\\spad{+1}.0D0)/(\\spad{\\br} \\tab{4}\\spad{&XC}(3)\\spad{+15}.0D0*XC(2))\\spad{\\br} \\tab{5}FVECC(2)=((\\spad{XC}(1)\\spad{-0}.18D0)\\spad{*XC}(3)+(7.0D0*XC(1)\\spad{-1}.26D0)\\spad{*XC}(2)\\spad{+1}.0D0)/(\\spad{\\br} \\tab{4}\\spad{&XC}(3)\\spad{+7}.0D0*XC(2))\\spad{\\br} \\tab{5}FVECC(3)=((\\spad{XC}(1)\\spad{-0}.22D0)\\spad{*XC}(3)+(4.333333333333333D0*XC(1)\\spad{-0}.953333\\spad{\\br} \\tab{4}\\spad{&3333333333D0})\\spad{*XC}(2)\\spad{+1}.0D0)/(\\spad{XC}(3)\\spad{+4}.333333333333333D0*XC(2))\\spad{\\br} \\tab{5}FVECC(4)=((\\spad{XC}(1)\\spad{-0}.25D0)\\spad{*XC}(3)+(3.0D0*XC(1)\\spad{-0}.75D0)\\spad{*XC}(2)\\spad{+1}.0D0)/(\\spad{\\br} \\tab{4}\\spad{&XC}(3)\\spad{+3}.0D0*XC(2))\\spad{\\br} \\tab{5}FVECC(5)=((\\spad{XC}(1)\\spad{-0}.29D0)\\spad{*XC}(3)+(2.2D0*XC(1)\\spad{-0}.6379999999999999D0)*\\spad{\\br} \\tab{4}\\spad{&XC}(2)\\spad{+1}.0D0)/(\\spad{XC}(3)\\spad{+2}.2D0*XC(2))\\spad{\\br} \\tab{5}FVECC(6)=((\\spad{XC}(1)\\spad{-0}.32D0)\\spad{*XC}(3)+(1.666666666666667D0*XC(1)\\spad{-0}.533333\\spad{\\br} \\tab{4}\\spad{&3333333333D0})\\spad{*XC}(2)\\spad{+1}.0D0)/(\\spad{XC}(3)\\spad{+1}.666666666666667D0*XC(2))\\spad{\\br} \\tab{5}FVECC(7)=((\\spad{XC}(1)\\spad{-0}.35D0)\\spad{*XC}(3)+(1.285714285714286D0*XC(1)\\spad{-0}.45D0)*\\spad{\\br} \\tab{4}\\spad{&XC}(2)\\spad{+1}.0D0)/(\\spad{XC}(3)\\spad{+1}.285714285714286D0*XC(2))\\spad{\\br} \\tab{5}FVECC(8)=((\\spad{XC}(1)\\spad{-0}.39D0)\\spad{*XC}(3)+(\\spad{XC}(1)\\spad{-0}.39D0)\\spad{*XC}(2)\\spad{+1}.0D0)/(\\spad{XC}(3)+\\spad{\\br} \\tab{4}\\spad{&XC}(2))\\spad{\\br} \\tab{5}FVECC(9)=((\\spad{XC}(1)\\spad{-0}.37D0)\\spad{*XC}(3)+(\\spad{XC}(1)\\spad{-0}.37D0)\\spad{*XC}(2)\\spad{+1}.285714285714\\spad{\\br} \\tab{4}\\spad{&286D0})/(\\spad{XC}(3)\\spad{+XC}(2))\\spad{\\br} \\tab{5}FVECC(10)=((\\spad{XC}(1)\\spad{-0}.58D0)\\spad{*XC}(3)+(\\spad{XC}(1)\\spad{-0}.58D0)\\spad{*XC}(2)\\spad{+1}.66666666666\\spad{\\br} \\tab{4}\\spad{&6667D0})/(\\spad{XC}(3)\\spad{+XC}(2))\\spad{\\br} \\tab{5}FVECC(11)=((\\spad{XC}(1)\\spad{-0}.73D0)\\spad{*XC}(3)+(\\spad{XC}(1)\\spad{-0}.73D0)\\spad{*XC}(2)\\spad{+2}.2D0)/(\\spad{XC}(3)\\spad{\\br} \\tab{4}&+XC(2))\\spad{\\br} \\tab{5}FVECC(12)=((\\spad{XC}(1)\\spad{-0}.96D0)\\spad{*XC}(3)+(\\spad{XC}(1)\\spad{-0}.96D0)\\spad{*XC}(2)\\spad{+3}.0D0)/(\\spad{XC}(3)\\spad{\\br} \\tab{4}&+XC(2))\\spad{\\br} \\tab{5}FVECC(13)=((\\spad{XC}(1)\\spad{-1}.34D0)\\spad{*XC}(3)+(\\spad{XC}(1)\\spad{-1}.34D0)\\spad{*XC}(2)\\spad{+4}.33333333333\\spad{\\br} \\tab{4}\\spad{&3333D0})/(\\spad{XC}(3)\\spad{+XC}(2))\\spad{\\br} \\tab{5}FVECC(14)=((\\spad{XC}(1)\\spad{-2}.1D0)\\spad{*XC}(3)+(\\spad{XC}(1)\\spad{-2}.1D0)\\spad{*XC}(2)\\spad{+7}.0D0)/(\\spad{XC}(3)\\spad{+X}\\spad{\\br} \\tab{4}\\spad{&C}(2))\\spad{\\br} \\tab{5}FVECC(15)=((\\spad{XC}(1)\\spad{-4}.39D0)\\spad{*XC}(3)+(\\spad{XC}(1)\\spad{-4}.39D0)\\spad{*XC}(2)\\spad{+15}.0D0)/(\\spad{XC}(3\\spad{\\br} \\tab{4}&)\\spad{+XC}(2))\\spad{\\br} \\tab{5}FJACC(1,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}FJACC(1,{}2)=-15.0D0/(\\spad{XC}(3)\\spad{**2+30}.0D0*XC(2)\\spad{*XC}(3)\\spad{+225}.0D0*XC(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(1,{}3)=-1.0D0/(\\spad{XC}(3)\\spad{**2+30}.0D0*XC(2)\\spad{*XC}(3)\\spad{+225}.0D0*XC(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(2,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}FJACC(2,{}2)=-7.0D0/(\\spad{XC}(3)\\spad{**2+14}.0D0*XC(2)\\spad{*XC}(3)\\spad{+49}.0D0*XC(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(2,{}3)=-1.0D0/(\\spad{XC}(3)\\spad{**2+14}.0D0*XC(2)\\spad{*XC}(3)\\spad{+49}.0D0*XC(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(3,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}FJACC(3,{}2)=((\\spad{-0}.1110223024625157D-15*XC(3))\\spad{-4}.333333333333333D0)/(\\spad{\\br} \\tab{4}\\spad{&XC}(3)\\spad{**2+8}.666666666666666D0*XC(2)\\spad{*XC}(3)\\spad{+18}.77777777777778D0*XC(2)\\spad{\\br} \\tab{4}\\spad{&**2})\\spad{\\br} \\tab{5}FJACC(3,{}3)=(0.1110223024625157D-15*XC(2)\\spad{-1}.0D0)/(\\spad{XC}(3)\\spad{**2+8}.666666\\spad{\\br} \\tab{4}&666666666D0*XC(2)\\spad{*XC}(3)\\spad{+18}.77777777777778D0*XC(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(4,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}FJACC(4,{}2)=-3.0D0/(\\spad{XC}(3)\\spad{**2+6}.0D0*XC(2)\\spad{*XC}(3)\\spad{+9}.0D0*XC(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(4,{}3)=-1.0D0/(\\spad{XC}(3)\\spad{**2+6}.0D0*XC(2)\\spad{*XC}(3)\\spad{+9}.0D0*XC(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(5,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}FJACC(5,{}2)=((\\spad{-0}.1110223024625157D-15*XC(3))\\spad{-2}.2D0)/(\\spad{XC}(3)\\spad{**2+4}.399\\spad{\\br} \\tab{4}&999999999999D0*XC(2)\\spad{*XC}(3)\\spad{+4}.839999999999998D0*XC(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(5,{}3)=(0.1110223024625157D-15*XC(2)\\spad{-1}.0D0)/(\\spad{XC}(3)\\spad{**2+4}.399999\\spad{\\br} \\tab{4}&999999999D0*XC(2)\\spad{*XC}(3)\\spad{+4}.839999999999998D0*XC(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(6,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}FJACC(6,{}2)=((\\spad{-0}.2220446049250313D-15*XC(3))\\spad{-1}.666666666666667D0)/(\\spad{\\br} \\tab{4}\\spad{&XC}(3)\\spad{**2+3}.333333333333333D0*XC(2)\\spad{*XC}(3)\\spad{+2}.777777777777777D0*XC(2)\\spad{\\br} \\tab{4}\\spad{&**2})\\spad{\\br} \\tab{5}FJACC(6,{}3)=(0.2220446049250313D-15*XC(2)\\spad{-1}.0D0)/(\\spad{XC}(3)\\spad{**2+3}.333333\\spad{\\br} \\tab{4}&333333333D0*XC(2)\\spad{*XC}(3)\\spad{+2}.777777777777777D0*XC(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(7,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}FJACC(7,{}2)=((\\spad{-0}.5551115123125783D-16*XC(3))\\spad{-1}.285714285714286D0)/(\\spad{\\br} \\tab{4}\\spad{&XC}(3)\\spad{**2+2}.571428571428571D0*XC(2)\\spad{*XC}(3)\\spad{+1}.653061224489796D0*XC(2)\\spad{\\br} \\tab{4}\\spad{&**2})\\spad{\\br} \\tab{5}FJACC(7,{}3)=(0.5551115123125783D-16*XC(2)\\spad{-1}.0D0)/(\\spad{XC}(3)\\spad{**2+2}.571428\\spad{\\br} \\tab{4}&571428571D0*XC(2)\\spad{*XC}(3)\\spad{+1}.653061224489796D0*XC(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(8,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}FJACC(8,{}2)=-1.0D0/(\\spad{XC}(3)\\spad{**2+2}.0D0*XC(2)\\spad{*XC}(3)\\spad{+XC}(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(8,{}3)=-1.0D0/(\\spad{XC}(3)\\spad{**2+2}.0D0*XC(2)\\spad{*XC}(3)\\spad{+XC}(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(9,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}FJACC(9,{}2)=-1.285714285714286D0/(\\spad{XC}(3)\\spad{**2+2}.0D0*XC(2)\\spad{*XC}(3)\\spad{+XC}(2)*\\spad{\\br} \\tab{4}\\spad{&*2})\\spad{\\br} \\tab{5}FJACC(9,{}3)=-1.285714285714286D0/(\\spad{XC}(3)\\spad{**2+2}.0D0*XC(2)\\spad{*XC}(3)\\spad{+XC}(2)*\\spad{\\br} \\tab{4}\\spad{&*2})\\spad{\\br} \\tab{5}FJACC(10,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}FJACC(10,{}2)=-1.666666666666667D0/(\\spad{XC}(3)\\spad{**2+2}.0D0*XC(2)\\spad{*XC}(3)\\spad{+XC}(2)\\spad{\\br} \\tab{4}\\spad{&**2})\\spad{\\br} \\tab{5}FJACC(10,{}3)=-1.666666666666667D0/(\\spad{XC}(3)\\spad{**2+2}.0D0*XC(2)\\spad{*XC}(3)\\spad{+XC}(2)\\spad{\\br} \\tab{4}\\spad{&**2})\\spad{\\br} \\tab{5}FJACC(11,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}FJACC(11,{}2)=-2.2D0/(\\spad{XC}(3)\\spad{**2+2}.0D0*XC(2)\\spad{*XC}(3)\\spad{+XC}(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(11,{}3)=-2.2D0/(\\spad{XC}(3)\\spad{**2+2}.0D0*XC(2)\\spad{*XC}(3)\\spad{+XC}(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(12,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}FJACC(12,{}2)=-3.0D0/(\\spad{XC}(3)\\spad{**2+2}.0D0*XC(2)\\spad{*XC}(3)\\spad{+XC}(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(12,{}3)=-3.0D0/(\\spad{XC}(3)\\spad{**2+2}.0D0*XC(2)\\spad{*XC}(3)\\spad{+XC}(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(13,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}FJACC(13,{}2)=-4.333333333333333D0/(\\spad{XC}(3)\\spad{**2+2}.0D0*XC(2)\\spad{*XC}(3)\\spad{+XC}(2)\\spad{\\br} \\tab{4}\\spad{&**2})\\spad{\\br} \\tab{5}FJACC(13,{}3)=-4.333333333333333D0/(\\spad{XC}(3)\\spad{**2+2}.0D0*XC(2)\\spad{*XC}(3)\\spad{+XC}(2)\\spad{\\br} \\tab{4}\\spad{&**2})\\spad{\\br} \\tab{5}FJACC(14,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}FJACC(14,{}2)=-7.0D0/(\\spad{XC}(3)\\spad{**2+2}.0D0*XC(2)\\spad{*XC}(3)\\spad{+XC}(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(14,{}3)=-7.0D0/(\\spad{XC}(3)\\spad{**2+2}.0D0*XC(2)\\spad{*XC}(3)\\spad{+XC}(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(15,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}FJACC(15,{}2)=-15.0D0/(\\spad{XC}(3)\\spad{**2+2}.0D0*XC(2)\\spad{*XC}(3)\\spad{+XC}(2)\\spad{**2})\\spad{\\br} \\tab{5}FJACC(15,{}3)=-15.0D0/(\\spad{XC}(3)\\spad{**2+2}.0D0*XC(2)\\spad{*XC}(3)\\spad{+XC}(2)\\spad{**2})\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END")) (|coerce| (($ (|Vector| (|FortranExpression| (|construct|) (|construct| (QUOTE XC)) (|MachineFloat|)))) "\\spad{coerce(f)} takes objects from the appropriate instantiation of \\spadtype{FortranExpression} and turns them into an ASP."))) 
 NIL 
 NIL 
-(-69 -3391) 
+(-69 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp1} produces Fortran for Type 1 ASPs,{} needed for various NAG routines. Type 1 ASPs take a univariate expression (in the symbol \\spad{x}) and turn it into a Fortran Function like the following: \\blankline \\tab{5}DOUBLE PRECISION FUNCTION \\spad{F}(\\spad{X})\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{X}\\spad{\\br} \\tab{5}F=DSIN(\\spad{X})\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END")) (|coerce| (($ (|FortranExpression| (|construct| (QUOTE X)) (|construct|) (|MachineFloat|))) "\\spad{coerce(f)} takes an object from the appropriate instantiation of \\spadtype{FortranExpression} and turns it into an ASP."))) 
 NIL 
 NIL 
-(-70 -3391) 
+(-70 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp20} produces Fortran for Type 20 ASPs,{} for example: \\blankline \\tab{5}SUBROUTINE QPHESS(\\spad{N},{}NROWH,{}NCOLH,{}JTHCOL,{}HESS,{}\\spad{X},{}\\spad{HX})\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{HX}(\\spad{N}),{}\\spad{X}(\\spad{N}),{}HESS(NROWH,{}NCOLH)\\spad{\\br} \\tab{5}INTEGER JTHCOL,{}\\spad{N},{}NROWH,{}NCOLH\\spad{\\br} \\tab{5}\\spad{HX}(1)\\spad{=2}.0D0*X(1)\\spad{\\br} \\tab{5}\\spad{HX}(2)\\spad{=2}.0D0*X(2)\\spad{\\br} \\tab{5}\\spad{HX}(3)\\spad{=2}.0D0*X(4)\\spad{+2}.0D0*X(3)\\spad{\\br} \\tab{5}\\spad{HX}(4)\\spad{=2}.0D0*X(4)\\spad{+2}.0D0*X(3)\\spad{\\br} \\tab{5}\\spad{HX}(5)\\spad{=2}.0D0*X(5)\\spad{\\br} \\tab{5}\\spad{HX}(6)=(\\spad{-2}.0D0*X(7))+(\\spad{-2}.0D0*X(6))\\spad{\\br} \\tab{5}\\spad{HX}(7)=(\\spad{-2}.0D0*X(7))+(\\spad{-2}.0D0*X(6))\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END")) (|coerce| (($ (|Matrix| (|FortranExpression| (|construct|) (|construct| (QUOTE X) (QUOTE HESS)) (|MachineFloat|)))) "\\spad{coerce(f)} takes objects from the appropriate instantiation of \\spadtype{FortranExpression} and turns them into an ASP."))) 
 NIL 
 NIL 
-(-71 -3391) 
+(-71 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp24} produces Fortran for Type 24 ASPs which evaluate a multivariate function at a point (needed for NAG routine e04jaf),{} for example: \\blankline \\tab{5}SUBROUTINE \\spad{FUNCT1}(\\spad{N},{}\\spad{XC},{}\\spad{FC})\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{FC},{}\\spad{XC}(\\spad{N})\\spad{\\br} \\tab{5}INTEGER \\spad{N}\\spad{\\br} \\tab{5}\\spad{FC=10}.0D0*XC(4)**4+(\\spad{-40}.0D0*XC(1)\\spad{*XC}(4)\\spad{**3})+(60.0D0*XC(1)\\spad{**2+5}\\spad{\\br} \\tab{4}&.0D0)\\spad{*XC}(4)**2+((\\spad{-10}.0D0*XC(3))+(\\spad{-40}.0D0*XC(1)\\spad{**3}))\\spad{*XC}(4)\\spad{+16}.0D0*X\\spad{\\br} \\tab{4}\\spad{&C}(3)**4+(\\spad{-32}.0D0*XC(2)\\spad{*XC}(3)\\spad{**3})+(24.0D0*XC(2)\\spad{**2+5}.0D0)\\spad{*XC}(3)**2+\\spad{\\br} \\tab{4}&(\\spad{-8}.0D0*XC(2)**3*XC(3))\\spad{+XC}(2)\\spad{**4+100}.0D0*XC(2)\\spad{**2+20}.0D0*XC(1)\\spad{*XC}(\\spad{\\br} \\tab{4}\\spad{&2})\\spad{+10}.0D0*XC(1)**4+XC(1)\\spad{**2}\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END\\spad{\\br}")) (|coerce| (($ (|FortranExpression| (|construct|) (|construct| (QUOTE XC)) (|MachineFloat|))) "\\spadtype{FortranExpression} and turns it into an ASP. coerce(\\spad{f}) takes an object from the appropriate instantiation of"))) 
 NIL 
 NIL 
-(-72 -3391) 
+(-72 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp27} produces Fortran for Type 27 ASPs,{} needed for NAG routine f02fjf ,{}for example: \\blankline \\tab{5}FUNCTION DOT(IFLAG,{}\\spad{N},{}\\spad{Z},{}\\spad{W},{}RWORK,{}LRWORK,{}IWORK,{}LIWORK)\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{W}(\\spad{N}),{}\\spad{Z}(\\spad{N}),{}RWORK(LRWORK)\\spad{\\br} \\tab{5}INTEGER \\spad{N},{}LIWORK,{}IFLAG,{}LRWORK,{}IWORK(LIWORK)\\spad{\\br} \\tab{5}DOT=(\\spad{W}(16)+(\\spad{-0}.5D0*W(15)))\\spad{*Z}(16)+((\\spad{-0}.5D0*W(16))\\spad{+W}(15)+(\\spad{-0}.5D0*W(1\\spad{\\br} \\tab{4}\\spad{&4})))\\spad{*Z}(15)+((\\spad{-0}.5D0*W(15))\\spad{+W}(14)+(\\spad{-0}.5D0*W(13)))\\spad{*Z}(14)+((\\spad{-0}.5D0*W(\\spad{\\br} \\tab{4}\\spad{&14}))\\spad{+W}(13)+(\\spad{-0}.5D0*W(12)))\\spad{*Z}(13)+((\\spad{-0}.5D0*W(13))\\spad{+W}(12)+(\\spad{-0}.5D0*W(1\\spad{\\br} \\tab{4}\\spad{&1})))\\spad{*Z}(12)+((\\spad{-0}.5D0*W(12))\\spad{+W}(11)+(\\spad{-0}.5D0*W(10)))\\spad{*Z}(11)+((\\spad{-0}.5D0*W(\\spad{\\br} \\tab{4}\\spad{&11}))\\spad{+W}(10)+(\\spad{-0}.5D0*W(9)))\\spad{*Z}(10)+((\\spad{-0}.5D0*W(10))\\spad{+W}(9)+(\\spad{-0}.5D0*W(8))\\spad{\\br} \\tab{4}&)\\spad{*Z}(9)+((\\spad{-0}.5D0*W(9))\\spad{+W}(8)+(\\spad{-0}.5D0*W(7)))\\spad{*Z}(8)+((\\spad{-0}.5D0*W(8))\\spad{+W}(7)\\spad{\\br} \\tab{4}\\spad{&+}(\\spad{-0}.5D0*W(6)))\\spad{*Z}(7)+((\\spad{-0}.5D0*W(7))\\spad{+W}(6)+(\\spad{-0}.5D0*W(5)))\\spad{*Z}(6)+((\\spad{-0}.\\spad{\\br} \\tab{4}&5D0*W(6))\\spad{+W}(5)+(\\spad{-0}.5D0*W(4)))\\spad{*Z}(5)+((\\spad{-0}.5D0*W(5))\\spad{+W}(4)+(\\spad{-0}.5D0*W(3\\spad{\\br} \\tab{4}&)))\\spad{*Z}(4)+((\\spad{-0}.5D0*W(4))\\spad{+W}(3)+(\\spad{-0}.5D0*W(2)))\\spad{*Z}(3)+((\\spad{-0}.5D0*W(3))\\spad{+W}(\\spad{\\br} \\tab{4}\\spad{&2})+(\\spad{-0}.5D0*W(1)))\\spad{*Z}(2)+((\\spad{-0}.5D0*W(2))\\spad{+W}(1))\\spad{*Z}(1)\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END"))) 
 NIL 
 NIL 
-(-73 -3391) 
+(-73 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp28} produces Fortran for Type 28 ASPs,{} used in NAG routine f02fjf,{} for example: \\blankline \\tab{5}SUBROUTINE IMAGE(IFLAG,{}\\spad{N},{}\\spad{Z},{}\\spad{W},{}RWORK,{}LRWORK,{}IWORK,{}LIWORK)\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{Z}(\\spad{N}),{}\\spad{W}(\\spad{N}),{}IWORK(LRWORK),{}RWORK(LRWORK)\\spad{\\br} \\tab{5}INTEGER \\spad{N},{}LIWORK,{}IFLAG,{}LRWORK\\spad{\\br} \\tab{5}\\spad{W}(1)\\spad{=0}.01707454969713436D0*Z(16)\\spad{+0}.001747395874954051D0*Z(15)\\spad{+0}.00\\spad{\\br} \\tab{4}&2106973900813502D0*Z(14)\\spad{+0}.002957434991769087D0*Z(13)+(\\spad{-0}.00700554\\spad{\\br} \\tab{4}&0882865317D0*Z(12))+(\\spad{-0}.01219194009813166D0*Z(11))\\spad{+0}.0037230647365\\spad{\\br} \\tab{4}&3087D0*Z(10)\\spad{+0}.04932374658377151D0*Z(9)+(\\spad{-0}.03586220812223305D0*Z(\\spad{\\br} \\tab{4}\\spad{&8}))+(\\spad{-0}.04723268012114625D0*Z(7))+(\\spad{-0}.02434652144032987D0*Z(6))\\spad{+0}.\\spad{\\br} \\tab{4}&2264766947290192D0*Z(5)+(\\spad{-0}.1385343580686922D0*Z(4))+(\\spad{-0}.116530050\\spad{\\br} \\tab{4}&8238904D0*Z(3))+(\\spad{-0}.2803531651057233D0*Z(2))\\spad{+1}.019463911841327D0*Z\\spad{\\br} \\tab{4}&(1)\\spad{\\br} \\tab{5}\\spad{W}(2)\\spad{=0}.0227345011107737D0*Z(16)\\spad{+0}.008812321197398072D0*Z(15)\\spad{+0}.010\\spad{\\br} \\tab{4}&94012210519586D0*Z(14)+(\\spad{-0}.01764072463999744D0*Z(13))+(\\spad{-0}.01357136\\spad{\\br} \\tab{4}&72105995D0*Z(12))\\spad{+0}.00157466157362272D0*Z(11)\\spad{+0}.05258889186338282D\\spad{\\br} \\tab{4}&0*Z(10)+(\\spad{-0}.01981532388243379D0*Z(9))+(\\spad{-0}.06095390688679697D0*Z(8)\\spad{\\br} \\tab{4}&)+(\\spad{-0}.04153119955569051D0*Z(7))\\spad{+0}.2176561076571465D0*Z(6)+(\\spad{-0}.0532\\spad{\\br} \\tab{4}&5555586632358D0*Z(5))+(\\spad{-0}.1688977368984641D0*Z(4))+(\\spad{-0}.32440166056\\spad{\\br} \\tab{4}&67343D0*Z(3))\\spad{+0}.9128222941872173D0*Z(2)+(\\spad{-0}.2419652703415429D0*Z(1\\spad{\\br} \\tab{4}&))\\spad{\\br} \\tab{5}\\spad{W}(3)\\spad{=0}.03371198197190302D0*Z(16)\\spad{+0}.02021603150122265D0*Z(15)+(\\spad{-0}.0\\spad{\\br} \\tab{4}&06607305534689702D0*Z(14))+(\\spad{-0}.03032392238968179D0*Z(13))\\spad{+0}.002033\\spad{\\br} \\tab{4}&305231024948D0*Z(12)\\spad{+0}.05375944956767728D0*Z(11)+(\\spad{-0}.0163213312502\\spad{\\br} \\tab{4}&9967D0*Z(10))+(\\spad{-0}.05483186562035512D0*Z(9))+(\\spad{-0}.04901428822579872D\\spad{\\br} \\tab{4}&0*Z(8))\\spad{+0}.2091097927887612D0*Z(7)+(\\spad{-0}.05760560341383113D0*Z(6))+(-\\spad{\\br} \\tab{4}\\spad{&0}.1236679206156403D0*Z(5))+(\\spad{-0}.3523683853026259D0*Z(4))\\spad{+0}.88929961\\spad{\\br} \\tab{4}&32269974D0*Z(3)+(\\spad{-0}.2995429545781457D0*Z(2))+(\\spad{-0}.02986582812574917\\spad{\\br} \\tab{4}&D0*Z(1))\\spad{\\br} \\tab{5}\\spad{W}(4)\\spad{=0}.05141563713660119D0*Z(16)\\spad{+0}.005239165960779299D0*Z(15)+(\\spad{-0}.\\spad{\\br} \\tab{4}&01623427735779699D0*Z(14))+(\\spad{-0}.01965809746040371D0*Z(13))\\spad{+0}.054688\\spad{\\br} \\tab{4}&97337339577D0*Z(12)+(\\spad{-0}.014224695935687D0*Z(11))+(\\spad{-0}.0505181779315\\spad{\\br} \\tab{4}&6355D0*Z(10))+(\\spad{-0}.04353074206076491D0*Z(9))\\spad{+0}.2012230497530726D0*Z\\spad{\\br} \\tab{4}&(8)+(\\spad{-0}.06630874514535952D0*Z(7))+(\\spad{-0}.1280829963720053D0*Z(6))+(\\spad{-0}\\spad{\\br} \\tab{4}&.305169742604165D0*Z(5))\\spad{+0}.8600427128450191D0*Z(4)+(\\spad{-0}.32415033802\\spad{\\br} \\tab{4}&68184D0*Z(3))+(\\spad{-0}.09033531980693314D0*Z(2))\\spad{+0}.09089205517109111D0*\\spad{\\br} \\tab{4}\\spad{&Z}(1)\\spad{\\br} \\tab{5}\\spad{W}(5)\\spad{=0}.04556369767776375D0*Z(16)+(\\spad{-0}.001822737697581869D0*Z(15))+(\\spad{\\br} \\tab{4}&-0.002512226501941856D0*Z(14))\\spad{+0}.02947046460707379D0*Z(13)+(\\spad{-0}.014\\spad{\\br} \\tab{4}&45079632086177D0*Z(12))+(\\spad{-0}.05034242196614937D0*Z(11))+(\\spad{-0}.0376966\\spad{\\br} \\tab{4}&3291725935D0*Z(10))\\spad{+0}.2171103102175198D0*Z(9)+(\\spad{-0}.0824949256021352\\spad{\\br} \\tab{4}&4D0*Z(8))+(\\spad{-0}.1473995209288945D0*Z(7))+(\\spad{-0}.315042193418466D0*Z(6))\\spad{\\br} \\tab{4}\\spad{&+0}.9591623347824002D0*Z(5)+(\\spad{-0}.3852396953763045D0*Z(4))+(\\spad{-0}.141718\\spad{\\br} \\tab{4}&5427288274D0*Z(3))+(\\spad{-0}.03423495461011043D0*Z(2))\\spad{+0}.319820917706851\\spad{\\br} \\tab{4}&6D0*Z(1)\\spad{\\br} \\tab{5}\\spad{W}(6)\\spad{=0}.04015147277405744D0*Z(16)\\spad{+0}.01328585741341559D0*Z(15)\\spad{+0}.048\\spad{\\br} \\tab{4}&26082005465965D0*Z(14)+(\\spad{-0}.04319641116207706D0*Z(13))+(\\spad{-0}.04931323\\spad{\\br} \\tab{4}&319055762D0*Z(12))+(\\spad{-0}.03526886317505474D0*Z(11))\\spad{+0}.22295383396730\\spad{\\br} \\tab{4}&01D0*Z(10)+(\\spad{-0}.07375317649315155D0*Z(9))+(\\spad{-0}.1589391311991561D0*Z(\\spad{\\br} \\tab{4}\\spad{&8}))+(\\spad{-0}.328001910890377D0*Z(7))\\spad{+0}.952576555482747D0*Z(6)+(\\spad{-0}.31583\\spad{\\br} \\tab{4}&09975786731D0*Z(5))+(\\spad{-0}.1846882042225383D0*Z(4))+(\\spad{-0}.0703762046700\\spad{\\br} \\tab{4}&4427D0*Z(3))\\spad{+0}.2311852964327382D0*Z(2)\\spad{+0}.04254083491825025D0*Z(1)\\spad{\\br} \\tab{5}\\spad{W}(7)\\spad{=0}.06069778964023718D0*Z(16)\\spad{+0}.06681263884671322D0*Z(15)+(\\spad{-0}.0\\spad{\\br} \\tab{4}&2113506688615768D0*Z(14))+(\\spad{-0}.083996867458326D0*Z(13))+(\\spad{-0}.0329843\\spad{\\br} \\tab{4}&8523869648D0*Z(12))\\spad{+0}.2276878326327734D0*Z(11)+(\\spad{-0}.067356038933017\\spad{\\br} \\tab{4}&95D0*Z(10))+(\\spad{-0}.1559813965382218D0*Z(9))+(\\spad{-0}.3363262957694705D0*Z(\\spad{\\br} \\tab{4}\\spad{&8}))\\spad{+0}.9442791158560948D0*Z(7)+(\\spad{-0}.3199955249404657D0*Z(6))+(\\spad{-0}.136\\spad{\\br} \\tab{4}&2463839920727D0*Z(5))+(\\spad{-0}.1006185171570586D0*Z(4))\\spad{+0}.2057504515015\\spad{\\br} \\tab{4}&423D0*Z(3)+(\\spad{-0}.02065879269286707D0*Z(2))\\spad{+0}.03160990266745513D0*Z(1\\spad{\\br} \\tab{4}&)\\spad{\\br} \\tab{5}\\spad{W}(8)\\spad{=0}.126386868896738D0*Z(16)\\spad{+0}.002563370039476418D0*Z(15)+(\\spad{-0}.05\\spad{\\br} \\tab{4}&581757739455641D0*Z(14))+(\\spad{-0}.07777893205900685D0*Z(13))\\spad{+0}.23117338\\spad{\\br} \\tab{4}&45834199D0*Z(12)+(\\spad{-0}.06031581134427592D0*Z(11))+(\\spad{-0}.14805474755869\\spad{\\br} \\tab{4}&52D0*Z(10))+(\\spad{-0}.3364014128402243D0*Z(9))\\spad{+0}.9364014128402244D0*Z(8)\\spad{\\br} \\tab{4}\\spad{&+}(\\spad{-0}.3269452524413048D0*Z(7))+(\\spad{-0}.1396841886557241D0*Z(6))+(\\spad{-0}.056\\spad{\\br} \\tab{4}&1733845834199D0*Z(5))\\spad{+0}.1777789320590069D0*Z(4)+(\\spad{-0}.04418242260544\\spad{\\br} \\tab{4}&359D0*Z(3))+(\\spad{-0}.02756337003947642D0*Z(2))\\spad{+0}.07361313110326199D0*Z(\\spad{\\br} \\tab{4}\\spad{&1})\\spad{\\br} \\tab{5}\\spad{W}(9)\\spad{=0}.07361313110326199D0*Z(16)+(\\spad{-0}.02756337003947642D0*Z(15))+(-\\spad{\\br} \\tab{4}\\spad{&0}.04418242260544359D0*Z(14))\\spad{+0}.1777789320590069D0*Z(13)+(\\spad{-0}.056173\\spad{\\br} \\tab{4}&3845834199D0*Z(12))+(\\spad{-0}.1396841886557241D0*Z(11))+(\\spad{-0}.326945252441\\spad{\\br} \\tab{4}&3048D0*Z(10))\\spad{+0}.9364014128402244D0*Z(9)+(\\spad{-0}.3364014128402243D0*Z(8\\spad{\\br} \\tab{4}&))+(\\spad{-0}.1480547475586952D0*Z(7))+(\\spad{-0}.06031581134427592D0*Z(6))\\spad{+0}.23\\spad{\\br} \\tab{4}&11733845834199D0*Z(5)+(\\spad{-0}.07777893205900685D0*Z(4))+(\\spad{-0}.0558175773\\spad{\\br} \\tab{4}&9455641D0*Z(3))\\spad{+0}.002563370039476418D0*Z(2)\\spad{+0}.126386868896738D0*Z(\\spad{\\br} \\tab{4}\\spad{&1})\\spad{\\br} \\tab{5}\\spad{W}(10)\\spad{=0}.03160990266745513D0*Z(16)+(\\spad{-0}.02065879269286707D0*Z(15))\\spad{+0}\\spad{\\br} \\tab{4}&.2057504515015423D0*Z(14)+(\\spad{-0}.1006185171570586D0*Z(13))+(\\spad{-0}.136246\\spad{\\br} \\tab{4}&3839920727D0*Z(12))+(\\spad{-0}.3199955249404657D0*Z(11))\\spad{+0}.94427911585609\\spad{\\br} \\tab{4}&48D0*Z(10)+(\\spad{-0}.3363262957694705D0*Z(9))+(\\spad{-0}.1559813965382218D0*Z(8\\spad{\\br} \\tab{4}&))+(\\spad{-0}.06735603893301795D0*Z(7))\\spad{+0}.2276878326327734D0*Z(6)+(\\spad{-0}.032\\spad{\\br} \\tab{4}&98438523869648D0*Z(5))+(\\spad{-0}.083996867458326D0*Z(4))+(\\spad{-0}.02113506688\\spad{\\br} \\tab{4}&615768D0*Z(3))\\spad{+0}.06681263884671322D0*Z(2)\\spad{+0}.06069778964023718D0*Z(\\spad{\\br} \\tab{4}\\spad{&1})\\spad{\\br} \\tab{5}\\spad{W}(11)\\spad{=0}.04254083491825025D0*Z(16)\\spad{+0}.2311852964327382D0*Z(15)+(\\spad{-0}.0\\spad{\\br} \\tab{4}&7037620467004427D0*Z(14))+(\\spad{-0}.1846882042225383D0*Z(13))+(\\spad{-0}.315830\\spad{\\br} \\tab{4}&9975786731D0*Z(12))\\spad{+0}.952576555482747D0*Z(11)+(\\spad{-0}.328001910890377D\\spad{\\br} \\tab{4}&0*Z(10))+(\\spad{-0}.1589391311991561D0*Z(9))+(\\spad{-0}.07375317649315155D0*Z(8)\\spad{\\br} \\tab{4}&)\\spad{+0}.2229538339673001D0*Z(7)+(\\spad{-0}.03526886317505474D0*Z(6))+(\\spad{-0}.0493\\spad{\\br} \\tab{4}&1323319055762D0*Z(5))+(\\spad{-0}.04319641116207706D0*Z(4))\\spad{+0}.048260820054\\spad{\\br} \\tab{4}&65965D0*Z(3)\\spad{+0}.01328585741341559D0*Z(2)\\spad{+0}.04015147277405744D0*Z(1)\\spad{\\br} \\tab{5}\\spad{W}(12)\\spad{=0}.3198209177068516D0*Z(16)+(\\spad{-0}.03423495461011043D0*Z(15))+(-\\spad{\\br} \\tab{4}\\spad{&0}.1417185427288274D0*Z(14))+(\\spad{-0}.3852396953763045D0*Z(13))\\spad{+0}.959162\\spad{\\br} \\tab{4}&3347824002D0*Z(12)+(\\spad{-0}.315042193418466D0*Z(11))+(\\spad{-0}.14739952092889\\spad{\\br} \\tab{4}&45D0*Z(10))+(\\spad{-0}.08249492560213524D0*Z(9))\\spad{+0}.2171103102175198D0*Z(8\\spad{\\br} \\tab{4}&)+(\\spad{-0}.03769663291725935D0*Z(7))+(\\spad{-0}.05034242196614937D0*Z(6))+(\\spad{-0}.\\spad{\\br} \\tab{4}&01445079632086177D0*Z(5))\\spad{+0}.02947046460707379D0*Z(4)+(\\spad{-0}.002512226\\spad{\\br} \\tab{4}&501941856D0*Z(3))+(\\spad{-0}.001822737697581869D0*Z(2))\\spad{+0}.045563697677763\\spad{\\br} \\tab{4}&75D0*Z(1)\\spad{\\br} \\tab{5}\\spad{W}(13)\\spad{=0}.09089205517109111D0*Z(16)+(\\spad{-0}.09033531980693314D0*Z(15))+(\\spad{\\br} \\tab{4}&-0.3241503380268184D0*Z(14))\\spad{+0}.8600427128450191D0*Z(13)+(\\spad{-0}.305169\\spad{\\br} \\tab{4}&742604165D0*Z(12))+(\\spad{-0}.1280829963720053D0*Z(11))+(\\spad{-0}.0663087451453\\spad{\\br} \\tab{4}&5952D0*Z(10))\\spad{+0}.2012230497530726D0*Z(9)+(\\spad{-0}.04353074206076491D0*Z(\\spad{\\br} \\tab{4}\\spad{&8}))+(\\spad{-0}.05051817793156355D0*Z(7))+(\\spad{-0}.014224695935687D0*Z(6))\\spad{+0}.05\\spad{\\br} \\tab{4}&468897337339577D0*Z(5)+(\\spad{-0}.01965809746040371D0*Z(4))+(\\spad{-0}.016234277\\spad{\\br} \\tab{4}&35779699D0*Z(3))\\spad{+0}.005239165960779299D0*Z(2)\\spad{+0}.05141563713660119D0\\spad{\\br} \\tab{4}\\spad{&*Z}(1)\\spad{\\br} \\tab{5}\\spad{W}(14)=(\\spad{-0}.02986582812574917D0*Z(16))+(\\spad{-0}.2995429545781457D0*Z(15))\\spad{\\br} \\tab{4}\\spad{&+0}.8892996132269974D0*Z(14)+(\\spad{-0}.3523683853026259D0*Z(13))+(\\spad{-0}.1236\\spad{\\br} \\tab{4}&679206156403D0*Z(12))+(\\spad{-0}.05760560341383113D0*Z(11))\\spad{+0}.20910979278\\spad{\\br} \\tab{4}&87612D0*Z(10)+(\\spad{-0}.04901428822579872D0*Z(9))+(\\spad{-0}.05483186562035512D\\spad{\\br} \\tab{4}&0*Z(8))+(\\spad{-0}.01632133125029967D0*Z(7))\\spad{+0}.05375944956767728D0*Z(6)\\spad{+0}\\spad{\\br} \\tab{4}&.002033305231024948D0*Z(5)+(\\spad{-0}.03032392238968179D0*Z(4))+(\\spad{-0}.00660\\spad{\\br} \\tab{4}&7305534689702D0*Z(3))\\spad{+0}.02021603150122265D0*Z(2)\\spad{+0}.033711981971903\\spad{\\br} \\tab{4}&02D0*Z(1)\\spad{\\br} \\tab{5}\\spad{W}(15)=(\\spad{-0}.2419652703415429D0*Z(16))\\spad{+0}.9128222941872173D0*Z(15)+(\\spad{-0}\\spad{\\br} \\tab{4}&.3244016605667343D0*Z(14))+(\\spad{-0}.1688977368984641D0*Z(13))+(\\spad{-0}.05325\\spad{\\br} \\tab{4}&555586632358D0*Z(12))\\spad{+0}.2176561076571465D0*Z(11)+(\\spad{-0}.0415311995556\\spad{\\br} \\tab{4}&9051D0*Z(10))+(\\spad{-0}.06095390688679697D0*Z(9))+(\\spad{-0}.01981532388243379D\\spad{\\br} \\tab{4}&0*Z(8))\\spad{+0}.05258889186338282D0*Z(7)\\spad{+0}.00157466157362272D0*Z(6)+(\\spad{-0}.\\spad{\\br} \\tab{4}&0135713672105995D0*Z(5))+(\\spad{-0}.01764072463999744D0*Z(4))\\spad{+0}.010940122\\spad{\\br} \\tab{4}&10519586D0*Z(3)\\spad{+0}.008812321197398072D0*Z(2)\\spad{+0}.0227345011107737D0*Z\\spad{\\br} \\tab{4}&(1)\\spad{\\br} \\tab{5}\\spad{W}(16)\\spad{=1}.019463911841327D0*Z(16)+(\\spad{-0}.2803531651057233D0*Z(15))+(\\spad{-0}.\\spad{\\br} \\tab{4}&1165300508238904D0*Z(14))+(\\spad{-0}.1385343580686922D0*Z(13))\\spad{+0}.22647669\\spad{\\br} \\tab{4}&47290192D0*Z(12)+(\\spad{-0}.02434652144032987D0*Z(11))+(\\spad{-0}.04723268012114\\spad{\\br} \\tab{4}&625D0*Z(10))+(\\spad{-0}.03586220812223305D0*Z(9))\\spad{+0}.04932374658377151D0*Z\\spad{\\br} \\tab{4}&(8)\\spad{+0}.00372306473653087D0*Z(7)+(\\spad{-0}.01219194009813166D0*Z(6))+(\\spad{-0}.0\\spad{\\br} \\tab{4}&07005540882865317D0*Z(5))\\spad{+0}.002957434991769087D0*Z(4)\\spad{+0}.0021069739\\spad{\\br} \\tab{4}&00813502D0*Z(3)\\spad{+0}.001747395874954051D0*Z(2)\\spad{+0}.01707454969713436D0*\\spad{\\br} \\tab{4}\\spad{&Z}(1)\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END\\spad{\\br}"))) 
 NIL 
 NIL 
-(-74 -3391) 
+(-74 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp29} produces Fortran for Type 29 ASPs,{} needed for NAG routine f02fjf,{} for example: \\blankline \\tab{5}SUBROUTINE MONIT(ISTATE,{}NEXTIT,{}NEVALS,{}NEVECS,{}\\spad{K},{}\\spad{F},{}\\spad{D})\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{D}(\\spad{K}),{}\\spad{F}(\\spad{K})\\spad{\\br} \\tab{5}INTEGER \\spad{K},{}NEXTIT,{}NEVALS,{}NVECS,{}ISTATE\\spad{\\br} \\tab{5}CALL F02FJZ(ISTATE,{}NEXTIT,{}NEVALS,{}NEVECS,{}\\spad{K},{}\\spad{F},{}\\spad{D})\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END\\spad{\\br}")) (|outputAsFortran| (((|Void|)) "\\spad{outputAsFortran()} generates the default code for \\spadtype{ASP29}."))) 
 NIL 
 NIL 
-(-75 -3391) 
+(-75 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp30} produces Fortran for Type 30 ASPs,{} needed for NAG routine f04qaf,{} for example: \\blankline \\tab{5}SUBROUTINE APROD(MODE,{}\\spad{M},{}\\spad{N},{}\\spad{X},{}\\spad{Y},{}RWORK,{}LRWORK,{}IWORK,{}LIWORK)\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{X}(\\spad{N}),{}\\spad{Y}(\\spad{M}),{}RWORK(LRWORK)\\spad{\\br} \\tab{5}INTEGER \\spad{M},{}\\spad{N},{}LIWORK,{}IFAIL,{}LRWORK,{}IWORK(LIWORK),{}MODE\\spad{\\br} \\tab{5}DOUBLE PRECISION A(5,{}5)\\spad{\\br} \\tab{5}EXTERNAL F06PAF\\spad{\\br} \\tab{5}A(1,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}A(1,{}2)\\spad{=0}.0D0\\spad{\\br} \\tab{5}A(1,{}3)\\spad{=0}.0D0\\spad{\\br} \\tab{5}A(1,{}4)=-1.0D0\\spad{\\br} \\tab{5}A(1,{}5)\\spad{=0}.0D0\\spad{\\br} \\tab{5}A(2,{}1)\\spad{=0}.0D0\\spad{\\br} \\tab{5}A(2,{}2)\\spad{=1}.0D0\\spad{\\br} \\tab{5}A(2,{}3)\\spad{=0}.0D0\\spad{\\br} \\tab{5}A(2,{}4)\\spad{=0}.0D0\\spad{\\br} \\tab{5}A(2,{}5)=-1.0D0\\spad{\\br} \\tab{5}A(3,{}1)\\spad{=0}.0D0\\spad{\\br} \\tab{5}A(3,{}2)\\spad{=0}.0D0\\spad{\\br} \\tab{5}A(3,{}3)\\spad{=1}.0D0\\spad{\\br} \\tab{5}A(3,{}4)=-1.0D0\\spad{\\br} \\tab{5}A(3,{}5)\\spad{=0}.0D0\\spad{\\br} \\tab{5}A(4,{}1)=-1.0D0\\spad{\\br} \\tab{5}A(4,{}2)\\spad{=0}.0D0\\spad{\\br} \\tab{5}A(4,{}3)=-1.0D0\\spad{\\br} \\tab{5}A(4,{}4)\\spad{=4}.0D0\\spad{\\br} \\tab{5}A(4,{}5)=-1.0D0\\spad{\\br} \\tab{5}A(5,{}1)\\spad{=0}.0D0\\spad{\\br} \\tab{5}A(5,{}2)=-1.0D0\\spad{\\br} \\tab{5}A(5,{}3)\\spad{=0}.0D0\\spad{\\br} \\tab{5}A(5,{}4)=-1.0D0\\spad{\\br} \\tab{5}A(5,{}5)\\spad{=4}.0D0\\spad{\\br} \\tab{5}IF(MODE.EQ.1)THEN\\spad{\\br} \\tab{7}CALL F06PAF(\\spad{'N'},{}\\spad{M},{}\\spad{N},{}1.0D0,{}A,{}\\spad{M},{}\\spad{X},{}1,{}1.0D0,{}\\spad{Y},{}1)\\spad{\\br} \\tab{5}ELSEIF(MODE.EQ.2)THEN\\spad{\\br} \\tab{7}CALL F06PAF(\\spad{'T'},{}\\spad{M},{}\\spad{N},{}1.0D0,{}A,{}\\spad{M},{}\\spad{Y},{}1,{}1.0D0,{}\\spad{X},{}1)\\spad{\\br} \\tab{5}ENDIF\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END"))) 
 NIL 
 NIL 
-(-76 -3391) 
+(-76 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp31} produces Fortran for Type 31 ASPs,{} needed for NAG routine d02ejf,{} for example: \\blankline \\tab{5}SUBROUTINE PEDERV(\\spad{X},{}\\spad{Y},{}\\spad{PW})\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{X},{}\\spad{Y}(*)\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{PW}(3,{}3)\\spad{\\br} \\tab{5}\\spad{PW}(1,{}1)=-0.03999999999999999D0\\spad{\\br} \\tab{5}\\spad{PW}(1,{}2)\\spad{=10000}.0D0*Y(3)\\spad{\\br} \\tab{5}\\spad{PW}(1,{}3)\\spad{=10000}.0D0*Y(2)\\spad{\\br} \\tab{5}\\spad{PW}(2,{}1)\\spad{=0}.03999999999999999D0\\spad{\\br} \\tab{5}\\spad{PW}(2,{}2)=(\\spad{-10000}.0D0*Y(3))+(\\spad{-60000000}.0D0*Y(2))\\spad{\\br} \\tab{5}\\spad{PW}(2,{}3)=-10000.0D0*Y(2)\\spad{\\br} \\tab{5}\\spad{PW}(3,{}1)\\spad{=0}.0D0\\spad{\\br} \\tab{5}\\spad{PW}(3,{}2)\\spad{=60000000}.0D0*Y(2)\\spad{\\br} \\tab{5}\\spad{PW}(3,{}3)\\spad{=0}.0D0\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END")) (|coerce| (($ (|Vector| (|FortranExpression| (|construct| (QUOTE X)) (|construct| (QUOTE Y)) (|MachineFloat|)))) "\\spad{coerce(f)} takes objects from the appropriate instantiation of \\spadtype{FortranExpression} and turns them into an ASP."))) 
 NIL 
 NIL 
-(-77 -3391) 
+(-77 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp33} produces Fortran for Type 33 ASPs,{} needed for NAG routine d02kef. The code is a dummy ASP: \\blankline \\tab{5}SUBROUTINE REPORT(\\spad{X},{}\\spad{V},{}JINT)\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{V}(3),{}\\spad{X}\\spad{\\br} \\tab{5}INTEGER JINT\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END")) (|outputAsFortran| (((|Void|)) "\\spad{outputAsFortran()} generates the default code for \\spadtype{ASP33}."))) 
 NIL 
 NIL 
-(-78 -3391) 
+(-78 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp34} produces Fortran for Type 34 ASPs,{} needed for NAG routine f04mbf,{} for example: \\blankline \\tab{5}SUBROUTINE MSOLVE(IFLAG,{}\\spad{N},{}\\spad{X},{}\\spad{Y},{}RWORK,{}LRWORK,{}IWORK,{}LIWORK)\\spad{\\br} \\tab{5}DOUBLE PRECISION RWORK(LRWORK),{}\\spad{X}(\\spad{N}),{}\\spad{Y}(\\spad{N})\\spad{\\br} \\tab{5}INTEGER \\spad{I},{}\\spad{J},{}\\spad{N},{}LIWORK,{}IFLAG,{}LRWORK,{}IWORK(LIWORK)\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{W1}(3),{}\\spad{W2}(3),{}\\spad{MS}(3,{}3)\\spad{\\br} \\tab{5}IFLAG=-1\\spad{\\br} \\tab{5}\\spad{MS}(1,{}1)\\spad{=2}.0D0\\spad{\\br} \\tab{5}\\spad{MS}(1,{}2)\\spad{=1}.0D0\\spad{\\br} \\tab{5}\\spad{MS}(1,{}3)\\spad{=0}.0D0\\spad{\\br} \\tab{5}\\spad{MS}(2,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}\\spad{MS}(2,{}2)\\spad{=2}.0D0\\spad{\\br} \\tab{5}\\spad{MS}(2,{}3)\\spad{=1}.0D0\\spad{\\br} \\tab{5}\\spad{MS}(3,{}1)\\spad{=0}.0D0\\spad{\\br} \\tab{5}\\spad{MS}(3,{}2)\\spad{=1}.0D0\\spad{\\br} \\tab{5}\\spad{MS}(3,{}3)\\spad{=2}.0D0\\spad{\\br} \\tab{5}CALL F04ASF(\\spad{MS},{}\\spad{N},{}\\spad{X},{}\\spad{N},{}\\spad{Y},{}\\spad{W1},{}\\spad{W2},{}IFLAG)\\spad{\\br} \\tab{5}IFLAG=-IFLAG\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END"))) 
 NIL 
 NIL 
-(-79 -3391) 
+(-79 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp35} produces Fortran for Type 35 ASPs,{} needed for NAG routines c05pbf,{} c05pcf,{} for example: \\blankline \\tab{5}SUBROUTINE \\spad{FCN}(\\spad{N},{}\\spad{X},{}FVEC,{}FJAC,{}LDFJAC,{}IFLAG)\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{X}(\\spad{N}),{}FVEC(\\spad{N}),{}FJAC(LDFJAC,{}\\spad{N})\\spad{\\br} \\tab{5}INTEGER LDFJAC,{}\\spad{N},{}IFLAG\\spad{\\br} \\tab{5}IF(IFLAG.EQ.1)THEN\\spad{\\br} \\tab{7}FVEC(1)=(\\spad{-1}.0D0*X(2))\\spad{+X}(1)\\spad{\\br} \\tab{7}FVEC(2)=(\\spad{-1}.0D0*X(3))\\spad{+2}.0D0*X(2)\\spad{\\br} \\tab{7}FVEC(3)\\spad{=3}.0D0*X(3)\\spad{\\br} \\tab{5}ELSEIF(IFLAG.EQ.2)THEN\\spad{\\br} \\tab{7}FJAC(1,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{7}FJAC(1,{}2)=-1.0D0\\spad{\\br} \\tab{7}FJAC(1,{}3)\\spad{=0}.0D0\\spad{\\br} \\tab{7}FJAC(2,{}1)\\spad{=0}.0D0\\spad{\\br} \\tab{7}FJAC(2,{}2)\\spad{=2}.0D0\\spad{\\br} \\tab{7}FJAC(2,{}3)=-1.0D0\\spad{\\br} \\tab{7}FJAC(3,{}1)\\spad{=0}.0D0\\spad{\\br} \\tab{7}FJAC(3,{}2)\\spad{=0}.0D0\\spad{\\br} \\tab{7}FJAC(3,{}3)\\spad{=3}.0D0\\spad{\\br} \\tab{5}ENDIF\\spad{\\br} \\tab{5}END")) (|coerce| (($ (|Vector| (|FortranExpression| (|construct|) (|construct| (QUOTE X)) (|MachineFloat|)))) "\\spad{coerce(f)} takes objects from the appropriate instantiation of \\spadtype{FortranExpression} and turns them into an ASP."))) 
 NIL 
 NIL 
@@ -256,55 +256,55 @@ NIL
 ((|constructor| (NIL "\\spadtype{Asp42} produces Fortran for Type 42 ASPs,{} needed for NAG routines d02raf and d02saf in particular. These ASPs are in fact three Fortran routines which return a vector of functions,{} and their derivatives \\spad{wrt} \\spad{Y}(\\spad{i}) and also a continuation parameter EPS,{} for example: \\blankline \\tab{5}SUBROUTINE \\spad{G}(EPS,{}YA,{}\\spad{YB},{}\\spad{BC},{}\\spad{N})\\spad{\\br} \\tab{5}DOUBLE PRECISION EPS,{}YA(\\spad{N}),{}\\spad{YB}(\\spad{N}),{}\\spad{BC}(\\spad{N})\\spad{\\br} \\tab{5}INTEGER \\spad{N}\\spad{\\br} \\tab{5}\\spad{BC}(1)=YA(1)\\spad{\\br} \\tab{5}\\spad{BC}(2)=YA(2)\\spad{\\br} \\tab{5}\\spad{BC}(3)\\spad{=YB}(2)\\spad{-1}.0D0\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END\\spad{\\br} \\tab{5}SUBROUTINE JACOBG(EPS,{}YA,{}\\spad{YB},{}AJ,{}\\spad{BJ},{}\\spad{N})\\spad{\\br} \\tab{5}DOUBLE PRECISION EPS,{}YA(\\spad{N}),{}AJ(\\spad{N},{}\\spad{N}),{}\\spad{BJ}(\\spad{N},{}\\spad{N}),{}\\spad{YB}(\\spad{N})\\spad{\\br} \\tab{5}INTEGER \\spad{N}\\spad{\\br} \\tab{5}AJ(1,{}1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}AJ(1,{}2)\\spad{=0}.0D0\\spad{\\br} \\tab{5}AJ(1,{}3)\\spad{=0}.0D0\\spad{\\br} \\tab{5}AJ(2,{}1)\\spad{=0}.0D0\\spad{\\br} \\tab{5}AJ(2,{}2)\\spad{=1}.0D0\\spad{\\br} \\tab{5}AJ(2,{}3)\\spad{=0}.0D0\\spad{\\br} \\tab{5}AJ(3,{}1)\\spad{=0}.0D0\\spad{\\br} \\tab{5}AJ(3,{}2)\\spad{=0}.0D0\\spad{\\br} \\tab{5}AJ(3,{}3)\\spad{=0}.0D0\\spad{\\br} \\tab{5}\\spad{BJ}(1,{}1)\\spad{=0}.0D0\\spad{\\br} \\tab{5}\\spad{BJ}(1,{}2)\\spad{=0}.0D0\\spad{\\br} \\tab{5}\\spad{BJ}(1,{}3)\\spad{=0}.0D0\\spad{\\br} \\tab{5}\\spad{BJ}(2,{}1)\\spad{=0}.0D0\\spad{\\br} \\tab{5}\\spad{BJ}(2,{}2)\\spad{=0}.0D0\\spad{\\br} \\tab{5}\\spad{BJ}(2,{}3)\\spad{=0}.0D0\\spad{\\br} \\tab{5}\\spad{BJ}(3,{}1)\\spad{=0}.0D0\\spad{\\br} \\tab{5}\\spad{BJ}(3,{}2)\\spad{=1}.0D0\\spad{\\br} \\tab{5}\\spad{BJ}(3,{}3)\\spad{=0}.0D0\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END\\spad{\\br} \\tab{5}SUBROUTINE JACGEP(EPS,{}YA,{}\\spad{YB},{}BCEP,{}\\spad{N})\\spad{\\br} \\tab{5}DOUBLE PRECISION EPS,{}YA(\\spad{N}),{}\\spad{YB}(\\spad{N}),{}BCEP(\\spad{N})\\spad{\\br} \\tab{5}INTEGER \\spad{N}\\spad{\\br} \\tab{5}BCEP(1)\\spad{=0}.0D0\\spad{\\br} \\tab{5}BCEP(2)\\spad{=0}.0D0\\spad{\\br} \\tab{5}BCEP(3)\\spad{=0}.0D0\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END")) (|coerce| (($ (|Vector| (|FortranExpression| (|construct| (QUOTE EPS)) (|construct| (QUOTE YA) (QUOTE YB)) (|MachineFloat|)))) "\\spad{coerce(f)} takes objects from the appropriate instantiation of \\spadtype{FortranExpression} and turns them into an ASP."))) 
 NIL 
 NIL 
-(-82 -3391) 
+(-82 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp49} produces Fortran for Type 49 ASPs,{} needed for NAG routines e04dgf,{} e04ucf,{} for example: \\blankline \\tab{5}SUBROUTINE OBJFUN(MODE,{}\\spad{N},{}\\spad{X},{}OBJF,{}OBJGRD,{}NSTATE,{}IUSER,{}USER)\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{X}(\\spad{N}),{}OBJF,{}OBJGRD(\\spad{N}),{}USER(*)\\spad{\\br} \\tab{5}INTEGER \\spad{N},{}IUSER(*),{}MODE,{}NSTATE\\spad{\\br} \\tab{5}OBJF=X(4)\\spad{*X}(9)+((\\spad{-1}.0D0*X(5))\\spad{+X}(3))\\spad{*X}(8)+((\\spad{-1}.0D0*X(3))\\spad{+X}(1))\\spad{*X}(7)\\spad{\\br} \\tab{4}\\spad{&+}(\\spad{-1}.0D0*X(2)\\spad{*X}(6))\\spad{\\br} \\tab{5}OBJGRD(1)\\spad{=X}(7)\\spad{\\br} \\tab{5}OBJGRD(2)=-1.0D0*X(6)\\spad{\\br} \\tab{5}OBJGRD(3)\\spad{=X}(8)+(\\spad{-1}.0D0*X(7))\\spad{\\br} \\tab{5}OBJGRD(4)\\spad{=X}(9)\\spad{\\br} \\tab{5}OBJGRD(5)=-1.0D0*X(8)\\spad{\\br} \\tab{5}OBJGRD(6)=-1.0D0*X(2)\\spad{\\br} \\tab{5}OBJGRD(7)=(\\spad{-1}.0D0*X(3))\\spad{+X}(1)\\spad{\\br} \\tab{5}OBJGRD(8)=(\\spad{-1}.0D0*X(5))\\spad{+X}(3)\\spad{\\br} \\tab{5}OBJGRD(9)\\spad{=X}(4)\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END")) (|coerce| (($ (|FortranExpression| (|construct|) (|construct| (QUOTE X)) (|MachineFloat|))) "\\spad{coerce(f)} takes an object from the appropriate instantiation of \\spadtype{FortranExpression} and turns it into an ASP."))) 
 NIL 
 NIL 
-(-83 -3391) 
+(-83 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp4} produces Fortran for Type 4 ASPs,{} which take an expression in \\spad{X}(1) .. \\spad{X}(NDIM) and produce a real function of the form: \\blankline \\tab{5}DOUBLE PRECISION FUNCTION FUNCTN(NDIM,{}\\spad{X})\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{X}(NDIM)\\spad{\\br} \\tab{5}INTEGER NDIM\\spad{\\br} \\tab{5}FUNCTN=(4.0D0*X(1)\\spad{*X}(3)**2*DEXP(2.0D0*X(1)\\spad{*X}(3)))/(\\spad{X}(4)**2+(2.0D0*\\spad{\\br} \\tab{4}\\spad{&X}(2)\\spad{+2}.0D0)\\spad{*X}(4)\\spad{+X}(2)\\spad{**2+2}.0D0*X(2)\\spad{+1}.0D0)\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END")) (|coerce| (($ (|FortranExpression| (|construct|) (|construct| (QUOTE X)) (|MachineFloat|))) "\\spad{coerce(f)} takes an object from the appropriate instantiation of \\spadtype{FortranExpression} and turns it into an ASP."))) 
 NIL 
 NIL 
-(-84 -3391) 
+(-84 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp50} produces Fortran for Type 50 ASPs,{} needed for NAG routine e04fdf,{} for example: \\blankline \\tab{5}SUBROUTINE \\spad{LSFUN1}(\\spad{M},{}\\spad{N},{}\\spad{XC},{}FVECC)\\spad{\\br} \\tab{5}DOUBLE PRECISION FVECC(\\spad{M}),{}\\spad{XC}(\\spad{N})\\spad{\\br} \\tab{5}INTEGER \\spad{I},{}\\spad{M},{}\\spad{N}\\spad{\\br} \\tab{5}FVECC(1)=((\\spad{XC}(1)\\spad{-2}.4D0)\\spad{*XC}(3)+(15.0D0*XC(1)\\spad{-36}.0D0)\\spad{*XC}(2)\\spad{+1}.0D0)/(\\spad{\\br} \\tab{4}\\spad{&XC}(3)\\spad{+15}.0D0*XC(2))\\spad{\\br} \\tab{5}FVECC(2)=((\\spad{XC}(1)\\spad{-2}.8D0)\\spad{*XC}(3)+(7.0D0*XC(1)\\spad{-19}.6D0)\\spad{*XC}(2)\\spad{+1}.0D0)/(\\spad{X}\\spad{\\br} \\tab{4}\\spad{&C}(3)\\spad{+7}.0D0*XC(2))\\spad{\\br} \\tab{5}FVECC(3)=((\\spad{XC}(1)\\spad{-3}.2D0)\\spad{*XC}(3)+(4.333333333333333D0*XC(1)\\spad{-13}.866666\\spad{\\br} \\tab{4}\\spad{&66666667D0})\\spad{*XC}(2)\\spad{+1}.0D0)/(\\spad{XC}(3)\\spad{+4}.333333333333333D0*XC(2))\\spad{\\br} \\tab{5}FVECC(4)=((\\spad{XC}(1)\\spad{-3}.5D0)\\spad{*XC}(3)+(3.0D0*XC(1)\\spad{-10}.5D0)\\spad{*XC}(2)\\spad{+1}.0D0)/(\\spad{X}\\spad{\\br} \\tab{4}\\spad{&C}(3)\\spad{+3}.0D0*XC(2))\\spad{\\br} \\tab{5}FVECC(5)=((\\spad{XC}(1)\\spad{-3}.9D0)\\spad{*XC}(3)+(2.2D0*XC(1)\\spad{-8}.579999999999998D0)\\spad{*XC}\\spad{\\br} \\tab{4}&(2)\\spad{+1}.0D0)/(\\spad{XC}(3)\\spad{+2}.2D0*XC(2))\\spad{\\br} \\tab{5}FVECC(6)=((\\spad{XC}(1)\\spad{-4}.199999999999999D0)\\spad{*XC}(3)+(1.666666666666667D0*X\\spad{\\br} \\tab{4}\\spad{&C}(1)\\spad{-7}.0D0)\\spad{*XC}(2)\\spad{+1}.0D0)/(\\spad{XC}(3)\\spad{+1}.666666666666667D0*XC(2))\\spad{\\br} \\tab{5}FVECC(7)=((\\spad{XC}(1)\\spad{-4}.5D0)\\spad{*XC}(3)+(1.285714285714286D0*XC(1)\\spad{-5}.7857142\\spad{\\br} \\tab{4}\\spad{&85714286D0})\\spad{*XC}(2)\\spad{+1}.0D0)/(\\spad{XC}(3)\\spad{+1}.285714285714286D0*XC(2))\\spad{\\br} \\tab{5}FVECC(8)=((\\spad{XC}(1)\\spad{-4}.899999999999999D0)\\spad{*XC}(3)+(\\spad{XC}(1)\\spad{-4}.8999999999999\\spad{\\br} \\tab{4}\\spad{&99D0})\\spad{*XC}(2)\\spad{+1}.0D0)/(\\spad{XC}(3)\\spad{+XC}(2))\\spad{\\br} \\tab{5}FVECC(9)=((\\spad{XC}(1)\\spad{-4}.699999999999999D0)\\spad{*XC}(3)+(\\spad{XC}(1)\\spad{-4}.6999999999999\\spad{\\br} \\tab{4}\\spad{&99D0})\\spad{*XC}(2)\\spad{+1}.285714285714286D0)/(\\spad{XC}(3)\\spad{+XC}(2))\\spad{\\br} \\tab{5}FVECC(10)=((\\spad{XC}(1)\\spad{-6}.8D0)\\spad{*XC}(3)+(\\spad{XC}(1)\\spad{-6}.8D0)\\spad{*XC}(2)\\spad{+1}.6666666666666\\spad{\\br} \\tab{4}\\spad{&67D0})/(\\spad{XC}(3)\\spad{+XC}(2))\\spad{\\br} \\tab{5}FVECC(11)=((\\spad{XC}(1)\\spad{-8}.299999999999999D0)\\spad{*XC}(3)+(\\spad{XC}(1)\\spad{-8}.299999999999\\spad{\\br} \\tab{4}\\spad{&999D0})\\spad{*XC}(2)\\spad{+2}.2D0)/(\\spad{XC}(3)\\spad{+XC}(2))\\spad{\\br} \\tab{5}FVECC(12)=((\\spad{XC}(1)\\spad{-10}.6D0)\\spad{*XC}(3)+(\\spad{XC}(1)\\spad{-10}.6D0)\\spad{*XC}(2)\\spad{+3}.0D0)/(\\spad{XC}(3)\\spad{\\br} \\tab{4}&+XC(2))\\spad{\\br} \\tab{5}FVECC(13)=((\\spad{XC}(1)\\spad{-1}.34D0)\\spad{*XC}(3)+(\\spad{XC}(1)\\spad{-1}.34D0)\\spad{*XC}(2)\\spad{+4}.33333333333\\spad{\\br} \\tab{4}\\spad{&3333D0})/(\\spad{XC}(3)\\spad{+XC}(2))\\spad{\\br} \\tab{5}FVECC(14)=((\\spad{XC}(1)\\spad{-2}.1D0)\\spad{*XC}(3)+(\\spad{XC}(1)\\spad{-2}.1D0)\\spad{*XC}(2)\\spad{+7}.0D0)/(\\spad{XC}(3)\\spad{+X}\\spad{\\br} \\tab{4}\\spad{&C}(2))\\spad{\\br} \\tab{5}FVECC(15)=((\\spad{XC}(1)\\spad{-4}.39D0)\\spad{*XC}(3)+(\\spad{XC}(1)\\spad{-4}.39D0)\\spad{*XC}(2)\\spad{+15}.0D0)/(\\spad{XC}(3\\spad{\\br} \\tab{4}&)\\spad{+XC}(2))\\spad{\\br} \\tab{5}END")) (|coerce| (($ (|Vector| (|FortranExpression| (|construct|) (|construct| (QUOTE XC)) (|MachineFloat|)))) "\\spad{coerce(f)} takes objects from the appropriate instantiation of \\spadtype{FortranExpression} and turns them into an ASP."))) 
 NIL 
 NIL 
-(-85 -3391) 
+(-85 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp55} produces Fortran for Type 55 ASPs,{} needed for NAG routines e04dgf and e04ucf,{} for example: \\blankline \\tab{5}SUBROUTINE CONFUN(MODE,{}NCNLN,{}\\spad{N},{}NROWJ,{}NEEDC,{}\\spad{X},{}\\spad{C},{}CJAC,{}NSTATE,{}IUSER\\spad{\\br} \\tab{4}&,{}USER)\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{C}(NCNLN),{}\\spad{X}(\\spad{N}),{}CJAC(NROWJ,{}\\spad{N}),{}USER(*)\\spad{\\br} \\tab{5}INTEGER \\spad{N},{}IUSER(*),{}NEEDC(NCNLN),{}NROWJ,{}MODE,{}NCNLN,{}NSTATE\\spad{\\br} \\tab{5}IF(NEEDC(1).\\spad{GT}.0)THEN\\spad{\\br} \\tab{7}\\spad{C}(1)\\spad{=X}(6)**2+X(1)\\spad{**2}\\spad{\\br} \\tab{7}CJAC(1,{}1)\\spad{=2}.0D0*X(1)\\spad{\\br} \\tab{7}CJAC(1,{}2)\\spad{=0}.0D0\\spad{\\br} \\tab{7}CJAC(1,{}3)\\spad{=0}.0D0\\spad{\\br} \\tab{7}CJAC(1,{}4)\\spad{=0}.0D0\\spad{\\br} \\tab{7}CJAC(1,{}5)\\spad{=0}.0D0\\spad{\\br} \\tab{7}CJAC(1,{}6)\\spad{=2}.0D0*X(6)\\spad{\\br} \\tab{5}ENDIF\\spad{\\br} \\tab{5}IF(NEEDC(2).\\spad{GT}.0)THEN\\spad{\\br} \\tab{7}\\spad{C}(2)\\spad{=X}(2)**2+(\\spad{-2}.0D0*X(1)\\spad{*X}(2))\\spad{+X}(1)\\spad{**2}\\spad{\\br} \\tab{7}CJAC(2,{}1)=(\\spad{-2}.0D0*X(2))\\spad{+2}.0D0*X(1)\\spad{\\br} \\tab{7}CJAC(2,{}2)\\spad{=2}.0D0*X(2)+(\\spad{-2}.0D0*X(1))\\spad{\\br} \\tab{7}CJAC(2,{}3)\\spad{=0}.0D0\\spad{\\br} \\tab{7}CJAC(2,{}4)\\spad{=0}.0D0\\spad{\\br} \\tab{7}CJAC(2,{}5)\\spad{=0}.0D0\\spad{\\br} \\tab{7}CJAC(2,{}6)\\spad{=0}.0D0\\spad{\\br} \\tab{5}ENDIF\\spad{\\br} \\tab{5}IF(NEEDC(3).\\spad{GT}.0)THEN\\spad{\\br} \\tab{7}\\spad{C}(3)\\spad{=X}(3)**2+(\\spad{-2}.0D0*X(1)\\spad{*X}(3))\\spad{+X}(2)**2+X(1)\\spad{**2}\\spad{\\br} \\tab{7}CJAC(3,{}1)=(\\spad{-2}.0D0*X(3))\\spad{+2}.0D0*X(1)\\spad{\\br} \\tab{7}CJAC(3,{}2)\\spad{=2}.0D0*X(2)\\spad{\\br} \\tab{7}CJAC(3,{}3)\\spad{=2}.0D0*X(3)+(\\spad{-2}.0D0*X(1))\\spad{\\br} \\tab{7}CJAC(3,{}4)\\spad{=0}.0D0\\spad{\\br} \\tab{7}CJAC(3,{}5)\\spad{=0}.0D0\\spad{\\br} \\tab{7}CJAC(3,{}6)\\spad{=0}.0D0\\spad{\\br} \\tab{5}ENDIF\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END")) (|coerce| (($ (|Vector| (|FortranExpression| (|construct|) (|construct| (QUOTE X)) (|MachineFloat|)))) "\\spad{coerce(f)} takes objects from the appropriate instantiation of \\spadtype{FortranExpression} and turns them into an ASP."))) 
 NIL 
 NIL 
-(-86 -3391) 
+(-86 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp6} produces Fortran for Type 6 ASPs,{} needed for NAG routines c05nbf,{} c05ncf. These represent vectors of functions of \\spad{X}(\\spad{i}) and look like: \\blankline \\tab{5}SUBROUTINE \\spad{FCN}(\\spad{N},{}\\spad{X},{}FVEC,{}IFLAG) \\tab{5}DOUBLE PRECISION \\spad{X}(\\spad{N}),{}FVEC(\\spad{N}) \\tab{5}INTEGER \\spad{N},{}IFLAG \\tab{5}FVEC(1)=(\\spad{-2}.0D0*X(2))+(\\spad{-2}.0D0*X(1)\\spad{**2})\\spad{+3}.0D0*X(1)\\spad{+1}.0D0 \\tab{5}FVEC(2)=(\\spad{-2}.0D0*X(3))+(\\spad{-2}.0D0*X(2)\\spad{**2})\\spad{+3}.0D0*X(2)+(\\spad{-1}.0D0*X(1))\\spad{+1}. \\tab{4}\\spad{&0D0} \\tab{5}FVEC(3)=(\\spad{-2}.0D0*X(4))+(\\spad{-2}.0D0*X(3)\\spad{**2})\\spad{+3}.0D0*X(3)+(\\spad{-1}.0D0*X(2))\\spad{+1}. \\tab{4}\\spad{&0D0} \\tab{5}FVEC(4)=(\\spad{-2}.0D0*X(5))+(\\spad{-2}.0D0*X(4)\\spad{**2})\\spad{+3}.0D0*X(4)+(\\spad{-1}.0D0*X(3))\\spad{+1}. \\tab{4}\\spad{&0D0} \\tab{5}FVEC(5)=(\\spad{-2}.0D0*X(6))+(\\spad{-2}.0D0*X(5)\\spad{**2})\\spad{+3}.0D0*X(5)+(\\spad{-1}.0D0*X(4))\\spad{+1}. \\tab{4}\\spad{&0D0} \\tab{5}FVEC(6)=(\\spad{-2}.0D0*X(7))+(\\spad{-2}.0D0*X(6)\\spad{**2})\\spad{+3}.0D0*X(6)+(\\spad{-1}.0D0*X(5))\\spad{+1}. \\tab{4}\\spad{&0D0} \\tab{5}FVEC(7)=(\\spad{-2}.0D0*X(8))+(\\spad{-2}.0D0*X(7)\\spad{**2})\\spad{+3}.0D0*X(7)+(\\spad{-1}.0D0*X(6))\\spad{+1}. \\tab{4}\\spad{&0D0} \\tab{5}FVEC(8)=(\\spad{-2}.0D0*X(9))+(\\spad{-2}.0D0*X(8)\\spad{**2})\\spad{+3}.0D0*X(8)+(\\spad{-1}.0D0*X(7))\\spad{+1}. \\tab{4}\\spad{&0D0} \\tab{5}FVEC(9)=(\\spad{-2}.0D0*X(9)\\spad{**2})\\spad{+3}.0D0*X(9)+(\\spad{-1}.0D0*X(8))\\spad{+1}.0D0 \\tab{5}RETURN \\tab{5}END")) (|coerce| (($ (|Vector| (|FortranExpression| (|construct|) (|construct| (QUOTE X)) (|MachineFloat|)))) "\\spad{coerce(f)} takes objects from the appropriate instantiation of \\spadtype{FortranExpression} and turns them into an ASP."))) 
 NIL 
 NIL 
-(-87 -3391) 
+(-87 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp73} produces Fortran for Type 73 ASPs,{} needed for NAG routine d03eef,{} for example: \\blankline \\tab{5}SUBROUTINE PDEF(\\spad{X},{}\\spad{Y},{}ALPHA,{}BETA,{}GAMMA,{}DELTA,{}EPSOLN,{}PHI,{}PSI)\\spad{\\br} \\tab{5}DOUBLE PRECISION ALPHA,{}EPSOLN,{}PHI,{}\\spad{X},{}\\spad{Y},{}BETA,{}DELTA,{}GAMMA,{}PSI\\spad{\\br} \\tab{5}ALPHA=DSIN(\\spad{X})\\spad{\\br} \\tab{5}BETA=Y\\spad{\\br} \\tab{5}GAMMA=X*Y\\spad{\\br} \\tab{5}DELTA=DCOS(\\spad{X})*DSIN(\\spad{Y})\\spad{\\br} \\tab{5}EPSOLN=Y+X\\spad{\\br} \\tab{5}PHI=X\\spad{\\br} \\tab{5}PSI=Y\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END")) (|coerce| (($ (|Vector| (|FortranExpression| (|construct| (QUOTE X) (QUOTE Y)) (|construct|) (|MachineFloat|)))) "\\spad{coerce(f)} takes objects from the appropriate instantiation of \\spadtype{FortranExpression} and turns them into an ASP."))) 
 NIL 
 NIL 
-(-88 -3391) 
+(-88 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp74} produces Fortran for Type 74 ASPs,{} needed for NAG routine d03eef,{} for example: \\blankline \\tab{5} SUBROUTINE BNDY(\\spad{X},{}\\spad{Y},{}A,{}\\spad{B},{}\\spad{C},{}IBND)\\spad{\\br} \\tab{5} DOUBLE PRECISION A,{}\\spad{B},{}\\spad{C},{}\\spad{X},{}\\spad{Y}\\spad{\\br} \\tab{5} INTEGER IBND\\spad{\\br} \\tab{5} IF(IBND.EQ.0)THEN\\spad{\\br} \\tab{7} \\spad{A=0}.0D0\\spad{\\br} \\tab{7} \\spad{B=1}.0D0\\spad{\\br} \\tab{7} \\spad{C=}-1.0D0*DSIN(\\spad{X})\\spad{\\br} \\tab{5} ELSEIF(IBND.EQ.1)THEN\\spad{\\br} \\tab{7} \\spad{A=1}.0D0\\spad{\\br} \\tab{7} \\spad{B=0}.0D0\\spad{\\br} \\tab{7} C=DSIN(\\spad{X})*DSIN(\\spad{Y})\\spad{\\br} \\tab{5} ELSEIF(IBND.EQ.2)THEN\\spad{\\br} \\tab{7} \\spad{A=1}.0D0\\spad{\\br} \\tab{7} \\spad{B=0}.0D0\\spad{\\br} \\tab{7} C=DSIN(\\spad{X})*DSIN(\\spad{Y})\\spad{\\br} \\tab{5} ELSEIF(IBND.EQ.3)THEN\\spad{\\br} \\tab{7} \\spad{A=0}.0D0\\spad{\\br} \\tab{7} \\spad{B=1}.0D0\\spad{\\br} \\tab{7} \\spad{C=}-1.0D0*DSIN(\\spad{Y})\\spad{\\br} \\tab{5} ENDIF\\spad{\\br} \\tab{5} END")) (|coerce| (($ (|Matrix| (|FortranExpression| (|construct| (QUOTE X) (QUOTE Y)) (|construct|) (|MachineFloat|)))) "\\spad{coerce(f)} takes objects from the appropriate instantiation of \\spadtype{FortranExpression} and turns them into an ASP."))) 
 NIL 
 NIL 
-(-89 -3391) 
+(-89 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp77} produces Fortran for Type 77 ASPs,{} needed for NAG routine d02gbf,{} for example: \\blankline \\tab{5}SUBROUTINE FCNF(\\spad{X},{}\\spad{F})\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{X}\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{F}(2,{}2)\\spad{\\br} \\tab{5}\\spad{F}(1,{}1)\\spad{=0}.0D0\\spad{\\br} \\tab{5}\\spad{F}(1,{}2)\\spad{=1}.0D0\\spad{\\br} \\tab{5}\\spad{F}(2,{}1)\\spad{=0}.0D0\\spad{\\br} \\tab{5}\\spad{F}(2,{}2)=-10.0D0\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END")) (|coerce| (($ (|Matrix| (|FortranExpression| (|construct| (QUOTE X)) (|construct|) (|MachineFloat|)))) "\\spad{coerce(f)} takes objects from the appropriate instantiation of \\spadtype{FortranExpression} and turns them into an ASP."))) 
 NIL 
 NIL 
-(-90 -3391) 
+(-90 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp78} produces Fortran for Type 78 ASPs,{} needed for NAG routine d02gbf,{} for example: \\blankline \\tab{5}SUBROUTINE FCNG(\\spad{X},{}\\spad{G})\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{G}(*),{}\\spad{X}\\spad{\\br} \\tab{5}\\spad{G}(1)\\spad{=0}.0D0\\spad{\\br} \\tab{5}\\spad{G}(2)\\spad{=0}.0D0\\spad{\\br} \\tab{5}END")) (|coerce| (($ (|Vector| (|FortranExpression| (|construct| (QUOTE X)) (|construct|) (|MachineFloat|)))) "\\spad{coerce(f)} takes objects from the appropriate instantiation of \\spadtype{FortranExpression} and turns them into an ASP."))) 
 NIL 
 NIL 
-(-91 -3391) 
+(-91 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp7} produces Fortran for Type 7 ASPs,{} needed for NAG routines d02bbf,{} d02gaf. These represent a vector of functions of the scalar \\spad{X} and the array \\spad{Z},{} and look like: \\blankline \\tab{5}SUBROUTINE \\spad{FCN}(\\spad{X},{}\\spad{Z},{}\\spad{F})\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{F}(*),{}\\spad{X},{}\\spad{Z}(*)\\spad{\\br} \\tab{5}\\spad{F}(1)=DTAN(\\spad{Z}(3))\\spad{\\br} \\tab{5}\\spad{F}(2)=((\\spad{-0}.03199999999999999D0*DCOS(\\spad{Z}(3))*DTAN(\\spad{Z}(3)))+(\\spad{-0}.02D0*Z(2)\\spad{\\br} \\tab{4}\\spad{&**2}))/(\\spad{Z}(2)*DCOS(\\spad{Z}(3)))\\spad{\\br} \\tab{5}\\spad{F}(3)=-0.03199999999999999D0/(\\spad{X*Z}(2)\\spad{**2})\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END")) (|coerce| (($ (|Vector| (|FortranExpression| (|construct| (QUOTE X)) (|construct| (QUOTE Y)) (|MachineFloat|)))) "\\spad{coerce(f)} takes objects from the appropriate instantiation of \\spadtype{FortranExpression} and turns them into an ASP."))) 
 NIL 
 NIL 
-(-92 -3391) 
+(-92 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp80} produces Fortran for Type 80 ASPs,{} needed for NAG routine d02kef,{} for example: \\blankline \\tab{5}SUBROUTINE BDYVAL(\\spad{XL},{}\\spad{XR},{}ELAM,{}\\spad{YL},{}\\spad{YR})\\spad{\\br} \\tab{5}DOUBLE PRECISION ELAM,{}\\spad{XL},{}\\spad{YL}(3),{}\\spad{XR},{}\\spad{YR}(3)\\spad{\\br} \\tab{5}\\spad{YL}(1)\\spad{=XL}\\spad{\\br} \\tab{5}\\spad{YL}(2)\\spad{=2}.0D0\\spad{\\br} \\tab{5}\\spad{YR}(1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}\\spad{YR}(2)=-1.0D0*DSQRT(\\spad{XR+}(\\spad{-1}.0D0*ELAM))\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END")) (|coerce| (($ (|Matrix| (|FortranExpression| (|construct| (QUOTE XL) (QUOTE XR) (QUOTE ELAM)) (|construct|) (|MachineFloat|)))) "\\spad{coerce(f)} takes objects from the appropriate instantiation of \\spadtype{FortranExpression} and turns them into an ASP."))) 
 NIL 
 NIL 
-(-93 -3391) 
+(-93 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp8} produces Fortran for Type 8 ASPs,{} needed for NAG routine d02bbf. This ASP prints intermediate values of the computed solution of an ODE and might look like: \\blankline \\tab{5}SUBROUTINE OUTPUT(XSOL,{}\\spad{Y},{}COUNT,{}\\spad{M},{}\\spad{N},{}RESULT,{}FORWRD)\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{Y}(\\spad{N}),{}RESULT(\\spad{M},{}\\spad{N}),{}XSOL\\spad{\\br} \\tab{5}INTEGER \\spad{M},{}\\spad{N},{}COUNT\\spad{\\br} \\tab{5}LOGICAL FORWRD\\spad{\\br} \\tab{5}DOUBLE PRECISION X02ALF,{}POINTS(8)\\spad{\\br} \\tab{5}EXTERNAL X02ALF\\spad{\\br} \\tab{5}INTEGER \\spad{I}\\spad{\\br} \\tab{5}POINTS(1)\\spad{=1}.0D0\\spad{\\br} \\tab{5}POINTS(2)\\spad{=2}.0D0\\spad{\\br} \\tab{5}POINTS(3)\\spad{=3}.0D0\\spad{\\br} \\tab{5}POINTS(4)\\spad{=4}.0D0\\spad{\\br} \\tab{5}POINTS(5)\\spad{=5}.0D0\\spad{\\br} \\tab{5}POINTS(6)\\spad{=6}.0D0\\spad{\\br} \\tab{5}POINTS(7)\\spad{=7}.0D0\\spad{\\br} \\tab{5}POINTS(8)\\spad{=8}.0D0\\spad{\\br} \\tab{5}\\spad{COUNT=COUNT+1}\\spad{\\br} \\tab{5}DO 25001 \\spad{I=1},{}\\spad{N}\\spad{\\br} \\tab{7} RESULT(COUNT,{}\\spad{I})\\spad{=Y}(\\spad{I})\\spad{\\br} 25001 CONTINUE\\spad{\\br} \\tab{5}IF(COUNT.EQ.\\spad{M})THEN\\spad{\\br} \\tab{7}IF(FORWRD)THEN\\spad{\\br} \\tab{9}XSOL=X02ALF()\\spad{\\br} \\tab{7}ELSE\\spad{\\br} \\tab{9}XSOL=-X02ALF()\\spad{\\br} \\tab{7}ENDIF\\spad{\\br} \\tab{5}ELSE\\spad{\\br} \\tab{7} XSOL=POINTS(COUNT)\\spad{\\br} \\tab{5}ENDIF\\spad{\\br} \\tab{5}END"))) 
 NIL 
 NIL 
-(-94 -3391) 
+(-94 -3393) 
 ((|constructor| (NIL "\\spadtype{Asp9} produces Fortran for Type 9 ASPs,{} needed for NAG routines d02bhf,{} d02cjf,{} d02ejf. These ASPs represent a function of a scalar \\spad{X} and a vector \\spad{Y},{} for example: \\blankline \\tab{5}DOUBLE PRECISION FUNCTION \\spad{G}(\\spad{X},{}\\spad{Y})\\spad{\\br} \\tab{5}DOUBLE PRECISION \\spad{X},{}\\spad{Y}(*)\\spad{\\br} \\tab{5}G=X+Y(1)\\spad{\\br} \\tab{5}RETURN\\spad{\\br} \\tab{5}END \\blankline If the user provides a constant value for \\spad{G},{} then extra information is added via COMMON blocks used by certain routines. This specifies that the value returned by \\spad{G} in this case is to be ignored.")) (|coerce| (($ (|FortranExpression| (|construct| (QUOTE X)) (|construct| (QUOTE Y)) (|MachineFloat|))) "\\spad{coerce(f)} takes an object from the appropriate instantiation of \\spadtype{FortranExpression} and turns it into an ASP."))) 
 NIL 
 NIL 
@@ -314,7 +314,7 @@ NIL
 ((|HasCategory| |#1| (QUOTE (-365)))) 
 (-96 S) 
 ((|constructor| (NIL "A stack represented as a flexible array.")) (|member?| (((|Boolean|) |#1| $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} member?(3,{}a)")) (|members| (((|List| |#1|) $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} members a")) (|parts| (((|List| |#1|) $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} parts a")) (|#| (((|NonNegativeInteger|) $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} \\#a")) (|count| (((|NonNegativeInteger|) |#1| $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} count(4,{}a)") (((|NonNegativeInteger|) (|Mapping| (|Boolean|) |#1|) $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} count(\\spad{x+}->(\\spad{x>2}),{}a)")) (|any?| (((|Boolean|) (|Mapping| (|Boolean|) |#1|) $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} any?(\\spad{x+}->(\\spad{x=4}),{}a)")) (|every?| (((|Boolean|) (|Mapping| (|Boolean|) |#1|) $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} every?(\\spad{x+}->(\\spad{x=4}),{}a)")) (~= (((|Boolean|) $ $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} b:=copy a \\spad{X} (a~=b)")) (= (((|Boolean|) $ $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} b:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} (a=b)@Boolean")) (|coerce| (((|OutputForm|) $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} coerce a")) (|hash| (((|SingleInteger|) $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} hash a")) (|latex| (((|String|) $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} latex a")) (|map!| (($ (|Mapping| |#1| |#1|) $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} map!(\\spad{x+}-\\spad{>x+10},{}a) \\spad{X} a")) (|map| (($ (|Mapping| |#1| |#1|) $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} map(\\spad{x+}-\\spad{>x+10},{}a) \\spad{X} a")) (|eq?| (((|Boolean|) $ $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} b:=copy a \\spad{X} eq?(a,{}\\spad{b})")) (|copy| (($ $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} copy a")) (|sample| (($) "\\blankline \\spad{X} sample()\\$ArrayStack(INT)")) (|empty| (($) "\\blankline \\spad{X} b:=empty()\\$(ArrayStack INT)")) (|empty?| (((|Boolean|) $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} empty? a")) (|bag| (($ (|List| |#1|)) "\\blankline \\spad{X} bag([1,{}2,{}3,{}4,{}5])\\$ArrayStack(INT)")) (|size?| (((|Boolean|) $ (|NonNegativeInteger|)) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} size?(a,{}5)")) (|more?| (((|Boolean|) $ (|NonNegativeInteger|)) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} more?(a,{}9)")) (|less?| (((|Boolean|) $ (|NonNegativeInteger|)) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} less?(a,{}9)")) (|depth| (((|NonNegativeInteger|) $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} depth a")) (|top| ((|#1| $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} top a")) (|inspect| ((|#1| $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} inspect a")) (|insert!| (($ |#1| $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} insert!(8,{}a) \\spad{X} a")) (|push!| ((|#1| |#1| $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} push!(9,{}a) \\spad{X} a")) (|extract!| ((|#1| $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} extract! a \\spad{X} a")) (|pop!| ((|#1| $) "\\blankline \\spad{X} a:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5] \\spad{X} pop! a \\spad{X} a")) (|arrayStack| (($ (|List| |#1|)) "\\indented{1}{arrayStack([\\spad{x},{}\\spad{y},{}...,{}\\spad{z}]) creates an array stack with first (top)} \\indented{1}{element \\spad{x},{} second element \\spad{y},{}...,{}and last element \\spad{z}.} \\blankline \\spad{E} c:ArrayStack INT:= arrayStack [1,{}2,{}3,{}4,{}5]"))) 
-((-4519 . T) (-4520 . T)) 
+((-4521 . T) (-4522 . T)) 
 ((|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090))))) 
 (-97 S) 
 ((|constructor| (NIL "Category for the inverse trigonometric functions.")) (|atan| (($ $) "\\spad{atan(x)} returns the arc-tangent of \\spad{x}.")) (|asin| (($ $) "\\spad{asin(x)} returns the arc-sine of \\spad{x}.")) (|asec| (($ $) "\\spad{asec(x)} returns the arc-secant of \\spad{x}.")) (|acsc| (($ $) "\\spad{acsc(x)} returns the arc-cosecant of \\spad{x}.")) (|acot| (($ $) "\\spad{acot(x)} returns the arc-cotangent of \\spad{x}.")) (|acos| (($ $) "\\spad{acos(x)} returns the arc-cosine of \\spad{x}."))) 
@@ -326,15 +326,15 @@ NIL
 NIL 
 (-99) 
 ((|constructor| (NIL "\\axiomType{AttributeButtons} implements a database and associated adjustment mechanisms for a set of attributes. \\blankline For ODEs these attributes are \"stiffness\",{} \"stability\" (\\spadignore{i.e.} how much affect the cosine or sine component of the solution has on the stability of the result),{} \"accuracy\" and \"expense\" (\\spadignore{i.e.} how expensive is the evaluation of the ODE). All these have bearing on the cost of calculating the solution given that reducing the step-length to achieve greater accuracy requires considerable number of evaluations and calculations. \\blankline The effect of each of these attributes can be altered by increasing or decreasing the button value. \\blankline For Integration there is a button for increasing and decreasing the preset number of function evaluations for each method. This is automatically used by ANNA when a method fails due to insufficient workspace or where the limit of function evaluations has been reached before the required accuracy is achieved.")) (|setButtonValue| (((|Float|) (|String|) (|String|) (|Float|)) "\\axiom{setButtonValue(attributeName,{}routineName,{}\\spad{n})} sets the value of the button of attribute \\spad{attributeName} to routine \\spad{routineName} to \\spad{n}. \\spad{n} must be in the range [0..1]. \\blankline \\axiom{attributeName} should be one of the values \"stiffness\",{} \"stability\",{} \"accuracy\",{} \"expense\" or \"functionEvaluations\".") (((|Float|) (|String|) (|Float|)) "\\axiom{setButtonValue(attributeName,{}\\spad{n})} sets the value of all buttons of attribute \\spad{attributeName} to \\spad{n}. \\spad{n} must be in the range [0..1]. \\blankline \\axiom{attributeName} should be one of the values \"stiffness\",{} \"stability\",{} \"accuracy\",{} \"expense\" or \"functionEvaluations\".")) (|setAttributeButtonStep| (((|Float|) (|Float|)) "\\axiom{setAttributeButtonStep(\\spad{n})} sets the value of the steps for increasing and decreasing the button values. \\axiom{\\spad{n}} must be greater than 0 and less than 1. The preset value is 0.5.")) (|resetAttributeButtons| (((|Void|)) "\\axiom{resetAttributeButtons()} resets the Attribute buttons to a neutral level.")) (|getButtonValue| (((|Float|) (|String|) (|String|)) "\\axiom{getButtonValue(routineName,{}attributeName)} returns the current value for the effect of the attribute \\axiom{attributeName} with routine \\axiom{routineName}. \\blankline \\axiom{attributeName} should be one of the values \"stiffness\",{} \"stability\",{} \"accuracy\",{} \"expense\" or \"functionEvaluations\".")) (|decrease| (((|Float|) (|String|)) "\\axiom{decrease(attributeName)} decreases the value for the effect of the attribute \\axiom{attributeName} with all routines. \\blankline \\axiom{attributeName} should be one of the values \"stiffness\",{} \"stability\",{} \"accuracy\",{} \"expense\" or \"functionEvaluations\".") (((|Float|) (|String|) (|String|)) "\\axiom{decrease(routineName,{}attributeName)} decreases the value for the effect of the attribute \\axiom{attributeName} with routine \\axiom{routineName}. \\blankline \\axiom{attributeName} should be one of the values \"stiffness\",{} \"stability\",{} \"accuracy\",{} \"expense\" or \"functionEvaluations\".")) (|increase| (((|Float|) (|String|)) "\\axiom{increase(attributeName)} increases the value for the effect of the attribute \\axiom{attributeName} with all routines. \\blankline \\axiom{attributeName} should be one of the values \"stiffness\",{} \"stability\",{} \"accuracy\",{} \"expense\" or \"functionEvaluations\".") (((|Float|) (|String|) (|String|)) "\\axiom{increase(routineName,{}attributeName)} increases the value for the effect of the attribute \\axiom{attributeName} with routine \\axiom{routineName}. \\blankline \\axiom{attributeName} should be one of the values \"stiffness\",{} \"stability\",{} \"accuracy\",{} \"expense\" or \"functionEvaluations\"."))) 
-((-4519 . T)) 
+((-4521 . T)) 
 NIL 
 (-100) 
 ((|constructor| (NIL "This category exports the attributes in the AXIOM Library")) (|approximate| ((|attribute|) "\\spad{approximate} means \"is an approximation to the real numbers\".")) (|canonical| ((|attribute|) "\\spad{canonical} is \\spad{true} if and only if distinct elements have distinct data structures. For example,{} a domain of mathematical objects which has the \\spad{canonical} attribute means that two objects are mathematically equal if and only if their data structures are equal.")) (|multiplicativeValuation| ((|attribute|) "\\spad{multiplicativeValuation} implies \\spad{euclideanSize(a*b)=euclideanSize(a)*euclideanSize(b)}.")) (|additiveValuation| ((|attribute|) "\\spad{additiveValuation} implies \\spad{euclideanSize(a*b)=euclideanSize(a)+euclideanSize(b)}.")) (|noetherian| ((|attribute|) "\\spad{noetherian} is \\spad{true} if all of its ideals are finitely generated.")) (|central| ((|attribute|) "\\spad{central} is \\spad{true} if,{} given an algebra over a ring \\spad{R},{} the image of \\spad{R} is the center of the algebra,{} \\spadignore{i.e.} the set of members of the algebra which commute with all others is precisely the image of \\spad{R} in the algebra.")) (|partiallyOrderedSet| ((|attribute|) "\\spad{partiallyOrderedSet} is \\spad{true} if a set with \\spadop{<} which is transitive,{} but \\spad{not(a < b or a = b)} does not necessarily imply \\spad{b<a}.")) (|arbitraryPrecision| ((|attribute|) "\\spad{arbitraryPrecision} means the user can set the precision for subsequent calculations.")) (|canonicalsClosed| ((|attribute|) "\\spad{canonicalsClosed} is \\spad{true} if \\spad{unitCanonical(a)*unitCanonical(b) = unitCanonical(a*b)}.")) (|canonicalUnitNormal| ((|attribute|) "\\spad{canonicalUnitNormal} is \\spad{true} if we can choose a canonical representative for each class of associate elements,{} that is \\spad{associates?(a,{}b)} returns \\spad{true} if and only if \\spad{unitCanonical(a) = unitCanonical(b)}.")) (|noZeroDivisors| ((|attribute|) "\\spad{noZeroDivisors} is \\spad{true} if \\spad{x * y \\~~= 0} implies both \\spad{x} and \\spad{y} are non-zero.")) (|rightUnitary| ((|attribute|) "\\spad{rightUnitary} is \\spad{true} if \\spad{x * 1 = x} for all \\spad{x}.")) (|leftUnitary| ((|attribute|) "\\spad{leftUnitary} is \\spad{true} if \\spad{1 * x = x} for all \\spad{x}.")) (|unitsKnown| ((|attribute|) "\\spad{unitsKnown} is \\spad{true} if a monoid (a multiplicative semigroup with a 1) has \\spad{unitsKnown} means that the operation \\spadfun{recip} can only return \"failed\" if its argument is not a unit.")) (|shallowlyMutable| ((|attribute|) "\\spad{shallowlyMutable} is \\spad{true} if its values have immediate components that are updateable (mutable). Note that the properties of any component domain are irrevelant to the \\spad{shallowlyMutable} proper.")) (|commutative| ((|attribute| "*") "\\spad{commutative(\"*\")} is \\spad{true} if it has an operation \\spad{\"*\": (D,{}D) -> D} which is commutative.")) (|finiteAggregate| ((|attribute|) "\\spad{finiteAggregate} is \\spad{true} if it is an aggregate with a finite number of elements."))) 
-((-4519 . T) ((-4521 "*") . T) (-4520 . T) (-4516 . T) (-4514 . T) (-4513 . T) (-4512 . T) (-4517 . T) (-4511 . T) (-4510 . T) (-4509 . T) (-4508 . T) (-4507 . T) (-4515 . T) (-4518 . T) (|NullSquare| . T) (|JacobiIdentity| . T) (-4506 . T) (-3996 . T)) 
+((-4521 . T) ((-4523 "*") . T) (-4522 . T) (-4518 . T) (-4516 . T) (-4515 . T) (-4514 . T) (-4519 . T) (-4513 . T) (-4512 . T) (-4511 . T) (-4510 . T) (-4509 . T) (-4517 . T) (-4520 . T) (|NullSquare| . T) (|JacobiIdentity| . T) (-4508 . T) (-3999 . T)) 
 NIL 
 (-101 R) 
 ((|constructor| (NIL "Automorphism \\spad{R} is the multiplicative group of automorphisms of \\spad{R}.")) (|morphism| (($ (|Mapping| |#1| |#1| (|Integer|))) "\\spad{morphism(f)} returns the morphism given by \\spad{f^n(x) = f(x,{}n)}.") (($ (|Mapping| |#1| |#1|) (|Mapping| |#1| |#1|)) "\\spad{morphism(f,{} g)} returns the invertible morphism given by \\spad{f},{} where \\spad{g} is the inverse of \\spad{f}..") (($ (|Mapping| |#1| |#1|)) "\\spad{morphism(f)} returns the non-invertible morphism given by \\spad{f}."))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-102) 
 ((|constructor| (NIL "This package provides a functions to support a web server for the new Axiom Browser functions."))) 
@@ -354,7 +354,7 @@ NIL
 NIL 
 (-106 S) 
 ((|constructor| (NIL "\\spadtype{BalancedBinaryTree(S)} is the domain of balanced binary trees (bbtree). A balanced binary tree of \\spad{2**k} leaves,{} for some \\spad{k > 0},{} is symmetric,{} that is,{} the left and right subtree of each interior node have identical shape. In general,{} the left and right subtree of a given node can differ by at most leaf node.")) (|mapDown!| (($ $ |#1| (|Mapping| (|List| |#1|) |#1| |#1| |#1|)) "\\indented{1}{mapDown!(\\spad{t},{}\\spad{p},{}\\spad{f}) returns \\spad{t} after traversing \\spad{t} in \"preorder\"} \\indented{1}{(node then left then right) fashion replacing the successive} \\indented{1}{interior nodes as follows. Let \\spad{l} and \\spad{r} denote the left and} \\indented{1}{right subtrees of \\spad{t}. The root value \\spad{x} of \\spad{t} is replaced by \\spad{p}.} \\indented{1}{Then \\spad{f}(value \\spad{l},{} value \\spad{r},{} \\spad{p}),{} where \\spad{l} and \\spad{r} denote the left} \\indented{1}{and right subtrees of \\spad{t},{} is evaluated producing two values} \\indented{1}{\\spad{pl} and \\spad{pr}. Then \\spad{mapDown!(l,{}pl,{}f)} and \\spad{mapDown!(l,{}pr,{}f)}} \\indented{1}{are evaluated.} \\blankline \\spad{X} T1:=BalancedBinaryTree Integer \\spad{X} t2:=balancedBinaryTree(4,{} 0)\\$\\spad{T1} \\spad{X} setleaves!(\\spad{t2},{}[1,{}2,{}3,{}4]::List(Integer)) \\spad{X} \\spad{adder3}(i:Integer,{}j:Integer,{}k:Integer):List Integer \\spad{==} [i+j,{}\\spad{j+k}] \\spad{X} mapDown!(\\spad{t2},{}4::INT,{}\\spad{adder3}) \\spad{X} \\spad{t2}") (($ $ |#1| (|Mapping| |#1| |#1| |#1|)) "\\indented{1}{mapDown!(\\spad{t},{}\\spad{p},{}\\spad{f}) returns \\spad{t} after traversing \\spad{t} in \"preorder\"} \\indented{1}{(node then left then right) fashion replacing the successive} \\indented{1}{interior nodes as follows. The root value \\spad{x} is} \\indented{1}{replaced by \\spad{q} \\spad{:=} \\spad{f}(\\spad{p},{}\\spad{x}). The mapDown!(\\spad{l},{}\\spad{q},{}\\spad{f}) and} \\indented{1}{mapDown!(\\spad{r},{}\\spad{q},{}\\spad{f}) are evaluated for the left and right subtrees} \\indented{1}{\\spad{l} and \\spad{r} of \\spad{t}.} \\blankline \\spad{X} T1:=BalancedBinaryTree Integer \\spad{X} t2:=balancedBinaryTree(4,{} 0)\\$\\spad{T1} \\spad{X} setleaves!(\\spad{t2},{}[1,{}2,{}3,{}4]::List(Integer)) \\spad{X} adder(i:Integer,{}j:Integer):Integer \\spad{==} i+j \\spad{X} mapDown!(\\spad{t2},{}4::INT,{}adder) \\spad{X} \\spad{t2}")) (|mapUp!| (($ $ $ (|Mapping| |#1| |#1| |#1| |#1| |#1|)) "\\indented{1}{mapUp!(\\spad{t},{}\\spad{t1},{}\\spad{f}) traverses balanced binary tree \\spad{t} in an \"endorder\"} \\indented{1}{(left then right then node) fashion returning \\spad{t} with the value} \\indented{1}{at each successive interior node of \\spad{t} replaced by} \\indented{1}{\\spad{f}(\\spad{l},{}\\spad{r},{}\\spad{l1},{}\\spad{r1}) where \\spad{l} and \\spad{r} are the values at the immediate} \\indented{1}{left and right nodes. Values \\spad{l1} and \\spad{r1} are values at the} \\indented{1}{corresponding nodes of a balanced binary tree \\spad{t1},{} of identical} \\indented{1}{shape at \\spad{t}.} \\blankline \\spad{X} T1:=BalancedBinaryTree Integer \\spad{X} t2:=balancedBinaryTree(4,{} 0)\\$\\spad{T1} \\spad{X} setleaves!(\\spad{t2},{}[1,{}2,{}3,{}4]::List(Integer)) \\spad{X} \\spad{adder4}(i:INT,{}j:INT,{}k:INT,{}l:INT):INT \\spad{==} i+j+k+l \\spad{X} mapUp!(\\spad{t2},{}\\spad{t2},{}\\spad{adder4}) \\spad{X} \\spad{t2}") ((|#1| $ (|Mapping| |#1| |#1| |#1|)) "\\indented{1}{mapUp!(\\spad{t},{}\\spad{f}) traverses balanced binary tree \\spad{t} in an \"endorder\"} \\indented{1}{(left then right then node) fashion returning \\spad{t} with the value} \\indented{1}{at each successive interior node of \\spad{t} replaced by} \\indented{1}{\\spad{f}(\\spad{l},{}\\spad{r}) where \\spad{l} and \\spad{r} are the values at the immediate} \\indented{1}{left and right nodes.} \\blankline \\spad{X} T1:=BalancedBinaryTree Integer \\spad{X} t2:=balancedBinaryTree(4,{} 0)\\$\\spad{T1} \\spad{X} setleaves!(\\spad{t2},{}[1,{}2,{}3,{}4]::List(Integer)) \\spad{X} adder(a:Integer,{}b:Integer):Integer \\spad{==} a+b \\spad{X} mapUp!(\\spad{t2},{}adder) \\spad{X} \\spad{t2}")) (|setleaves!| (($ $ (|List| |#1|)) "\\indented{1}{setleaves!(\\spad{t},{} \\spad{ls}) sets the leaves of \\spad{t} in left-to-right order} \\indented{1}{to the elements of \\spad{ls}.} \\blankline \\spad{X} t1:=balancedBinaryTree(4,{} 0) \\spad{X} setleaves!(\\spad{t1},{}[1,{}2,{}3,{}4])")) (|balancedBinaryTree| (($ (|NonNegativeInteger|) |#1|) "\\indented{1}{balancedBinaryTree(\\spad{n},{} \\spad{s}) creates a balanced binary tree with} \\indented{1}{\\spad{n} nodes each with value \\spad{s}.} \\blankline \\spad{X} balancedBinaryTree(4,{} 0)"))) 
-((-4519 . T) (-4520 . T)) 
+((-4521 . T) (-4522 . T)) 
 ((|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090))))) 
 (-107 R) 
 ((|constructor| (NIL "Provide linear,{} quadratic,{} and cubic spline bezier curves")) (|cubicBezier| (((|Mapping| (|List| |#1|) |#1|) (|List| |#1|) (|List| |#1|) (|List| |#1|) (|List| |#1|)) "\\indented{1}{A cubic Bezier curve is a simple interpolation between the} \\indented{1}{starting point,{} a left-middle point,{},{} a right-middle point,{}} \\indented{1}{and the ending point based on a parameter \\spad{t}.} \\indented{1}{Given a start point a=[\\spad{x1},{}\\spad{y1}],{} the left-middle point \\spad{b=}[\\spad{x2},{}\\spad{y2}],{}} \\indented{1}{the right-middle point \\spad{c=}[\\spad{x3},{}\\spad{y3}] and an endpoint \\spad{d=}[\\spad{x4},{}\\spad{y4}]} \\indented{1}{\\spad{f}(\\spad{t}) \\spad{==} [(1-\\spad{t})\\spad{^3} \\spad{x1} + 3t(1-\\spad{t})\\spad{^2} \\spad{x2} + 3t^2 (1-\\spad{t}) \\spad{x3} + \\spad{t^3} \\spad{x4},{}} \\indented{10}{(1-\\spad{t})\\spad{^3} \\spad{y1} + 3t(1-\\spad{t})\\spad{^2} \\spad{y2} + 3t^2 (1-\\spad{t}) \\spad{y3} + \\spad{t^3} \\spad{y4}]} \\blankline \\spad{X} n:=cubicBezier([2.0,{}2.0],{}[2.0,{}4.0],{}[6.0,{}4.0],{}[6.0,{}2.0]) \\spad{X} [\\spad{n}(\\spad{t/10}.0) for \\spad{t} in 0..10 by 1]")) (|quadraticBezier| (((|Mapping| (|List| |#1|) |#1|) (|List| |#1|) (|List| |#1|) (|List| |#1|)) "\\indented{1}{A quadratic Bezier curve is a simple interpolation between the} \\indented{1}{starting point,{} a middle point,{} and the ending point based on} \\indented{1}{a parameter \\spad{t}.} \\indented{1}{Given a start point a=[\\spad{x1},{}\\spad{y1}],{} a middle point \\spad{b=}[\\spad{x2},{}\\spad{y2}],{}} \\indented{1}{and an endpoint \\spad{c=}[\\spad{x3},{}\\spad{y3}]} \\indented{1}{\\spad{f}(\\spad{t}) \\spad{==} [(1-\\spad{t})\\spad{^2} \\spad{x1} + 2t(1-\\spad{t}) \\spad{x2} + \\spad{t^2} \\spad{x3},{}} \\indented{10}{(1-\\spad{t})\\spad{^2} \\spad{y1} + 2t(1-\\spad{t}) \\spad{y2} + \\spad{t^2} \\spad{y3}]} \\blankline \\spad{X} n:=quadraticBezier([2.0,{}2.0],{}[4.0,{}4.0],{}[6.0,{}2.0]) \\spad{X} [\\spad{n}(\\spad{t/10}.0) for \\spad{t} in 0..10 by 1]")) (|linearBezier| (((|Mapping| (|List| |#1|) |#1|) (|List| |#1|) (|List| |#1|)) "\\indented{1}{A linear Bezier curve is a simple interpolation between the} \\indented{1}{starting point and the ending point based on a parameter \\spad{t}.} \\indented{1}{Given a start point a=[\\spad{x1},{}\\spad{y1}] and an endpoint \\spad{b=}[\\spad{x2},{}\\spad{y2}]} \\indented{1}{\\spad{f}(\\spad{t}) \\spad{==} [(1-\\spad{t})\\spad{*x1} + \\spad{t*x2},{} (1-\\spad{t})\\spad{*y1} + \\spad{t*y2}]} \\blankline \\spad{X} n:=linearBezier([2.0,{}2.0],{}[4.0,{}4.0]) \\spad{X} [\\spad{n}(\\spad{t/10}.0) for \\spad{t} in 0..10 by 1]"))) 
@@ -363,10 +363,10 @@ NIL
 (-108 R UP M |Row| |Col|) 
 ((|constructor| (NIL "\\spadtype{BezoutMatrix} contains functions for computing resultants and discriminants using Bezout matrices.")) (|bezoutDiscriminant| ((|#1| |#2|) "\\spad{bezoutDiscriminant(p)} computes the discriminant of a polynomial \\spad{p} by computing the determinant of a Bezout matrix.")) (|bezoutResultant| ((|#1| |#2| |#2|) "\\spad{bezoutResultant(p,{}q)} computes the resultant of the two polynomials \\spad{p} and \\spad{q} by computing the determinant of a Bezout matrix.")) (|bezoutMatrix| ((|#3| |#2| |#2|) "\\spad{bezoutMatrix(p,{}q)} returns the Bezout matrix for the two polynomials \\spad{p} and \\spad{q}.")) (|sylvesterMatrix| ((|#3| |#2| |#2|) "\\spad{sylvesterMatrix(p,{}q)} returns the Sylvester matrix for the two polynomials \\spad{p} and \\spad{q}."))) 
 NIL 
-((|HasAttribute| |#1| (QUOTE (-4521 "*")))) 
+((|HasAttribute| |#1| (QUOTE (-4523 "*")))) 
 (-109) 
 ((|constructor| (NIL "A Domain which implements a table containing details of points at which particular functions have evaluation problems.")) (|bfEntry| (((|Record| (|:| |zeros| (|Stream| (|DoubleFloat|))) (|:| |ones| (|Stream| (|DoubleFloat|))) (|:| |singularities| (|Stream| (|DoubleFloat|)))) (|Symbol|)) "\\spad{bfEntry(k)} returns the entry in the \\axiomType{BasicFunctions} table corresponding to \\spad{k}")) (|bfKeys| (((|List| (|Symbol|))) "\\spad{bfKeys()} returns the names of each function in the \\axiomType{BasicFunctions} table"))) 
-((-4519 . T)) 
+((-4521 . T)) 
 NIL 
 (-110 A S) 
 ((|constructor| (NIL "A bag aggregate is an aggregate for which one can insert and extract objects,{} and where the order in which objects are inserted determines the order of extraction. Examples of bags are stacks,{} queues,{} and dequeues.")) (|inspect| ((|#2| $) "\\spad{inspect(u)} returns an (random) element from a bag.")) (|insert!| (($ |#2| $) "\\spad{insert!(x,{}u)} inserts item \\spad{x} into bag \\spad{u}.")) (|extract!| ((|#2| $) "\\spad{extract!(u)} destructively removes a (random) item from bag \\spad{u}.")) (|bag| (($ (|List| |#2|)) "\\spad{bag([x,{}y,{}...,{}z])} creates a bag with elements \\spad{x},{}\\spad{y},{}...,{}\\spad{z}.")) (|shallowlyMutable| ((|attribute|) "shallowlyMutable means that elements of bags may be destructively changed."))) 
@@ -374,19 +374,19 @@ NIL
 NIL 
 (-111 S) 
 ((|constructor| (NIL "A bag aggregate is an aggregate for which one can insert and extract objects,{} and where the order in which objects are inserted determines the order of extraction. Examples of bags are stacks,{} queues,{} and dequeues.")) (|inspect| ((|#1| $) "\\spad{inspect(u)} returns an (random) element from a bag.")) (|insert!| (($ |#1| $) "\\spad{insert!(x,{}u)} inserts item \\spad{x} into bag \\spad{u}.")) (|extract!| ((|#1| $) "\\spad{extract!(u)} destructively removes a (random) item from bag \\spad{u}.")) (|bag| (($ (|List| |#1|)) "\\spad{bag([x,{}y,{}...,{}z])} creates a bag with elements \\spad{x},{}\\spad{y},{}...,{}\\spad{z}.")) (|shallowlyMutable| ((|attribute|) "shallowlyMutable means that elements of bags may be destructively changed."))) 
-((-4520 . T) (-3973 . T)) 
+((-4522 . T) (-3973 . T)) 
 NIL 
 (-112) 
 ((|constructor| (NIL "This domain allows rational numbers to be presented as repeating binary expansions.")) (|binary| (($ (|Fraction| (|Integer|))) "\\indented{1}{binary(\\spad{r}) converts a rational number to a binary expansion.} \\blankline \\spad{X} binary(22/7)")) (|fractionPart| (((|Fraction| (|Integer|)) $) "\\spad{fractionPart(b)} returns the fractional part of a binary expansion.")) (|coerce| (((|RadixExpansion| 2) $) "\\spad{coerce(b)} converts a binary expansion to a radix expansion with base 2.") (((|Fraction| (|Integer|)) $) "\\spad{coerce(b)} converts a binary expansion to a rational number."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| (-568) (QUOTE (-904))) (|HasCategory| (-568) (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| (-568) (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-150))) (|HasCategory| (-568) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-568) (QUOTE (-1021))) (|HasCategory| (-568) (QUOTE (-815))) (|HasCategory| (-568) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| (-568) (QUOTE (-1136))) (|HasCategory| (-568) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| (-568) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| (-568) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| (-568) (QUOTE (-225))) (|HasCategory| (-568) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-568) (LIST (QUOTE -523) (QUOTE (-1161)) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -303) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -281) (QUOTE (-568)) (QUOTE (-568)))) (|HasCategory| (-568) (QUOTE (-301))) (|HasCategory| (-568) (QUOTE (-550))) (|HasCategory| (-568) (QUOTE (-842))) (-2198 (|HasCategory| (-568) (QUOTE (-815))) (|HasCategory| (-568) (QUOTE (-842)))) (|HasCategory| (-568) (LIST (QUOTE -630) (QUOTE (-568)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-904)))) (|HasCategory| (-568) (QUOTE (-148))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| (-568) (QUOTE (-904))) (|HasCategory| (-568) (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| (-568) (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-150))) (|HasCategory| (-568) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-568) (QUOTE (-1021))) (|HasCategory| (-568) (QUOTE (-815))) (|HasCategory| (-568) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| (-568) (QUOTE (-1136))) (|HasCategory| (-568) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| (-568) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| (-568) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| (-568) (QUOTE (-225))) (|HasCategory| (-568) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-568) (LIST (QUOTE -523) (QUOTE (-1161)) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -303) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -281) (QUOTE (-568)) (QUOTE (-568)))) (|HasCategory| (-568) (QUOTE (-301))) (|HasCategory| (-568) (QUOTE (-550))) (|HasCategory| (-568) (QUOTE (-842))) (-2199 (|HasCategory| (-568) (QUOTE (-815))) (|HasCategory| (-568) (QUOTE (-842)))) (|HasCategory| (-568) (LIST (QUOTE -630) (QUOTE (-568)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-904)))) (|HasCategory| (-568) (QUOTE (-148))))) 
 (-113) 
 ((|constructor| (NIL "This domain provides an implementation of binary files. Data is accessed one byte at a time as a small integer.")) (|position!| (((|SingleInteger|) $ (|SingleInteger|)) "\\spad{position!(f,{} i)} sets the current byte-position to \\spad{i}.")) (|position| (((|SingleInteger|) $) "\\spad{position(f)} returns the current byte-position in the file \\spad{f}.")) (|readIfCan!| (((|Union| (|SingleInteger|) "failed") $) "\\spad{readIfCan!(f)} returns a value from the file \\spad{f},{} if possible. If \\spad{f} is not open for reading,{} or if \\spad{f} is at the end of file then \\spad{\"failed\"} is the result."))) 
 NIL 
 NIL 
 (-114) 
 ((|constructor| (NIL "\\spadtype{Bits} provides logical functions for Indexed Bits.")) (|bits| (($ (|NonNegativeInteger|) (|Boolean|)) "\\spad{bits(n,{}b)} creates bits with \\spad{n} values of \\spad{b}"))) 
-((-4520 . T) (-4519 . T)) 
+((-4522 . T) (-4521 . T)) 
 ((|HasCategory| (-121) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-121) (QUOTE (-842))) (|HasCategory| (-568) (QUOTE (-842))) (|HasCategory| (-121) (QUOTE (-1090))) (-12 (|HasCategory| (-121) (LIST (QUOTE -303) (QUOTE (-121)))) (|HasCategory| (-121) (QUOTE (-1090))))) 
 (-115) 
 ((|constructor| (NIL "This package provides an interface to the Blas library (level 1)")) (|dcopy| (((|PrimitiveArray| (|DoubleFloat|)) (|SingleInteger|) (|PrimitiveArray| (|DoubleFloat|)) (|SingleInteger|) (|PrimitiveArray| (|DoubleFloat|)) (|SingleInteger|)) "\\indented{1}{dcopy(\\spad{n},{}\\spad{x},{}incx,{}\\spad{y},{}incy) copies \\spad{y} from \\spad{x}} \\indented{1}{for each of the chosen elements of the vectors \\spad{x} and \\spad{y}} \\indented{1}{Note that the vector \\spad{y} is modified with the results.} \\blankline \\spad{X} x:PRIMARR(DFLOAT)\\spad{:=}[ [1.0,{}2.0,{}3.0,{}4.0,{}5.0,{}6.0] ] \\spad{X} y:PRIMARR(DFLOAT)\\spad{:=}[ [0.0,{}0.0,{}0.0,{}0.0,{}0.0,{}0.0] ] \\spad{X} dcopy(6,{}\\spad{x},{}1,{}\\spad{y},{}1) \\spad{X} \\spad{y} \\spad{X} m:PRIMARR(DFLOAT)\\spad{:=}[ [1.0,{}2.0,{}3.0] ] \\spad{X} n:PRIMARR(DFLOAT)\\spad{:=}[ [0.0,{}0.0,{}0.0,{}0.0,{}0.0,{}0.0] ] \\spad{X} dcopy(3,{}\\spad{m},{}1,{}\\spad{n},{}2) \\spad{X} \\spad{n}")) (|daxpy| (((|PrimitiveArray| (|DoubleFloat|)) (|SingleInteger|) (|DoubleFloat|) (|PrimitiveArray| (|DoubleFloat|)) (|SingleInteger|) (|PrimitiveArray| (|DoubleFloat|)) (|SingleInteger|)) "\\indented{1}{daxpy(\\spad{n},{}da,{}\\spad{x},{}incx,{}\\spad{y},{}incy) computes a \\spad{y} = a*x + \\spad{y}} \\indented{1}{for each of the chosen elements of the vectors \\spad{x} and \\spad{y}} \\indented{1}{and a constant multiplier a} \\indented{1}{Note that the vector \\spad{y} is modified with the results.} \\blankline \\spad{X} x:PRIMARR(DFLOAT)\\spad{:=}[ [1.0,{}2.0,{}3.0,{}4.0,{}5.0,{}6.0] ] \\spad{X} y:PRIMARR(DFLOAT)\\spad{:=}[ [1.0,{}2.0,{}3.0,{}4.0,{}5.0,{}6.0] ] \\spad{X} daxpy(6,{}2.0,{}\\spad{x},{}1,{}\\spad{y},{}1) \\spad{X} \\spad{y} \\spad{X} m:PRIMARR(DFLOAT)\\spad{:=}[ [1.0,{}2.0,{}3.0] ] \\spad{X} n:PRIMARR(DFLOAT)\\spad{:=}[ [1.0,{}2.0,{}3.0,{}4.0,{}5.0,{}6.0] ] \\spad{X} daxpy(3,{}\\spad{-2}.0,{}\\spad{m},{}1,{}\\spad{n},{}2) \\spad{X} \\spad{n}")) (|dasum| (((|DoubleFloat|) (|SingleInteger|) (|PrimitiveArray| (|DoubleFloat|)) (|SingleInteger|)) "\\indented{1}{dasum(\\spad{n},{}array,{}incx) computes the sum of \\spad{n} elements in array} \\indented{1}{using a stride of incx} \\blankline \\spad{X} dx:PRIMARR(DFLOAT)\\spad{:=}[ [1.0,{}2.0,{}3.0,{}4.0,{}5.0,{}6.0] ] \\spad{X} dasum(6,{}\\spad{dx},{}1) \\spad{X} dasum(3,{}\\spad{dx},{}2)")) (|dcabs1| (((|DoubleFloat|) (|Complex| (|DoubleFloat|))) "\\indented{1}{\\spad{dcabs1}(\\spad{z}) computes (+ (abs (realpart \\spad{z})) (abs (imagpart \\spad{z})))} \\blankline \\spad{X} t1:Complex DoubleFloat \\spad{:=} complex(1.0,{}0) \\spad{X} dcabs(\\spad{t1})"))) 
@@ -410,7 +410,7 @@ NIL
 NIL 
 (-120 R S) 
 ((|constructor| (NIL "A \\spadtype{BiModule} is both a left and right module with respect to potentially different rings. \\blankline Axiom\\spad{\\br} \\tab{5}\\spad{ r*(x*s) = (r*x)*s }")) (|rightUnitary| ((|attribute|) "\\spad{x * 1 = x}")) (|leftUnitary| ((|attribute|) "\\spad{1 * x = x}"))) 
-((-4514 . T) (-4513 . T)) 
+((-4516 . T) (-4515 . T)) 
 NIL 
 (-121) 
 ((|constructor| (NIL "\\spadtype{Boolean} is the elementary logic with 2 values: \\spad{true} and \\spad{false}")) (|test| (((|Boolean|) $) "\\spad{test(b)} returns \\spad{b} and is provided for compatibility with the new compiler.")) (|implies| (($ $ $) "\\spad{implies(a,{}b)} returns the logical implication of Boolean \\spad{a} and \\spad{b}.")) (|nor| (($ $ $) "\\spad{nor(a,{}b)} returns the logical negation of \\spad{a} or \\spad{b}.")) (|nand| (($ $ $) "\\spad{nand(a,{}b)} returns the logical negation of \\spad{a} and \\spad{b}.")) (|xor| (($ $ $) "\\spad{xor(a,{}b)} returns the logical exclusive or of Boolean \\spad{a} and \\spad{b}.")) (|or| (($ $ $) "\\spad{a or b} returns the logical inclusive or of Boolean \\spad{a} and \\spad{b}.")) (|and| (($ $ $) "\\spad{a and b} returns the logical and of Boolean \\spad{a} and \\spad{b}.")) (|not| (($ $) "\\spad{not n} returns the negation of \\spad{n}.")) (^ (($ $) "\\spad{^ n} returns the negation of \\spad{n}.")) (|false| (($) "\\spad{false} is a logical constant.")) (|true| (($) "\\spad{true} is a logical constant."))) 
@@ -430,16 +430,16 @@ NIL
 NIL 
 (-125 |p|) 
 ((|constructor| (NIL "Stream-based implementation of \\spad{Zp:} \\spad{p}-adic numbers are represented as sum(\\spad{i} = 0..,{} a[\\spad{i}] * p^i),{} where the a[\\spad{i}] lie in -(\\spad{p} - 1)\\spad{/2},{}...,{}(\\spad{p} - 1)\\spad{/2}."))) 
-((-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-126 |p|) 
 ((|constructor| (NIL "Stream-based implementation of \\spad{Qp:} numbers are represented as sum(\\spad{i} = \\spad{k}..,{} a[\\spad{i}] * p^i),{} where the a[\\spad{i}] lie in -(\\spad{p} - 1)\\spad{/2},{}...,{}(\\spad{p} - 1)\\spad{/2}."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| (-125 |#1|) (QUOTE (-904))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| (-125 |#1|) (QUOTE (-148))) (|HasCategory| (-125 |#1|) (QUOTE (-150))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-125 |#1|) (QUOTE (-1021))) (|HasCategory| (-125 |#1|) (QUOTE (-815))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| (-125 |#1|) (QUOTE (-1136))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| (-125 |#1|) (QUOTE (-225))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -523) (QUOTE (-1161)) (LIST (QUOTE -125) (|devaluate| |#1|)))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -303) (LIST (QUOTE -125) (|devaluate| |#1|)))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -281) (LIST (QUOTE -125) (|devaluate| |#1|)) (LIST (QUOTE -125) (|devaluate| |#1|)))) (|HasCategory| (-125 |#1|) (QUOTE (-301))) (|HasCategory| (-125 |#1|) (QUOTE (-550))) (|HasCategory| (-125 |#1|) (QUOTE (-842))) (-2198 (|HasCategory| (-125 |#1|) (QUOTE (-815))) (|HasCategory| (-125 |#1|) (QUOTE (-842)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-125 |#1|) (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-125 |#1|) (QUOTE (-904)))) (|HasCategory| (-125 |#1|) (QUOTE (-148))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| (-125 |#1|) (QUOTE (-904))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| (-125 |#1|) (QUOTE (-148))) (|HasCategory| (-125 |#1|) (QUOTE (-150))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-125 |#1|) (QUOTE (-1021))) (|HasCategory| (-125 |#1|) (QUOTE (-815))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| (-125 |#1|) (QUOTE (-1136))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| (-125 |#1|) (QUOTE (-225))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -523) (QUOTE (-1161)) (LIST (QUOTE -125) (|devaluate| |#1|)))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -303) (LIST (QUOTE -125) (|devaluate| |#1|)))) (|HasCategory| (-125 |#1|) (LIST (QUOTE -281) (LIST (QUOTE -125) (|devaluate| |#1|)) (LIST (QUOTE -125) (|devaluate| |#1|)))) (|HasCategory| (-125 |#1|) (QUOTE (-301))) (|HasCategory| (-125 |#1|) (QUOTE (-550))) (|HasCategory| (-125 |#1|) (QUOTE (-842))) (-2199 (|HasCategory| (-125 |#1|) (QUOTE (-815))) (|HasCategory| (-125 |#1|) (QUOTE (-842)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-125 |#1|) (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-125 |#1|) (QUOTE (-904)))) (|HasCategory| (-125 |#1|) (QUOTE (-148))))) 
 (-127 A S) 
 ((|constructor| (NIL "A binary-recursive aggregate has 0,{} 1 or 2 children and serves as a model for a binary tree or a doubly-linked aggregate structure")) (|setright!| (($ $ $) "\\spad{setright!(a,{}x)} sets the right child of \\spad{t} to be \\spad{x}.")) (|setleft!| (($ $ $) "\\spad{setleft!(a,{}b)} sets the left child of \\axiom{a} to be \\spad{b}.")) (|setelt| (($ $ "right" $) "\\spad{setelt(a,{}\"right\",{}b)} (also written \\axiom{\\spad{b} . right \\spad{:=} \\spad{b}}) is equivalent to \\axiom{setright!(a,{}\\spad{b})}.") (($ $ "left" $) "\\spad{setelt(a,{}\"left\",{}b)} (also written \\axiom{a . left \\spad{:=} \\spad{b}}) is equivalent to \\axiom{setleft!(a,{}\\spad{b})}.")) (|right| (($ $) "\\spad{right(a)} returns the right child.")) (|elt| (($ $ "right") "\\spad{elt(a,{}\"right\")} (also written: \\axiom{a . right}) is equivalent to \\axiom{right(a)}.") (($ $ "left") "\\spad{elt(u,{}\"left\")} (also written: \\axiom{a . left}) is equivalent to \\axiom{left(a)}.")) (|left| (($ $) "\\spad{left(u)} returns the left child."))) 
 NIL 
-((|HasAttribute| |#1| (QUOTE -4520))) 
+((|HasAttribute| |#1| (QUOTE -4522))) 
 (-128 S) 
 ((|constructor| (NIL "A binary-recursive aggregate has 0,{} 1 or 2 children and serves as a model for a binary tree or a doubly-linked aggregate structure")) (|setright!| (($ $ $) "\\spad{setright!(a,{}x)} sets the right child of \\spad{t} to be \\spad{x}.")) (|setleft!| (($ $ $) "\\spad{setleft!(a,{}b)} sets the left child of \\axiom{a} to be \\spad{b}.")) (|setelt| (($ $ "right" $) "\\spad{setelt(a,{}\"right\",{}b)} (also written \\axiom{\\spad{b} . right \\spad{:=} \\spad{b}}) is equivalent to \\axiom{setright!(a,{}\\spad{b})}.") (($ $ "left" $) "\\spad{setelt(a,{}\"left\",{}b)} (also written \\axiom{a . left \\spad{:=} \\spad{b}}) is equivalent to \\axiom{setleft!(a,{}\\spad{b})}.")) (|right| (($ $) "\\spad{right(a)} returns the right child.")) (|elt| (($ $ "right") "\\spad{elt(a,{}\"right\")} (also written: \\axiom{a . right}) is equivalent to \\axiom{right(a)}.") (($ $ "left") "\\spad{elt(u,{}\"left\")} (also written: \\axiom{a . left}) is equivalent to \\axiom{left(a)}.")) (|left| (($ $) "\\spad{left(u)} returns the left child."))) 
 ((-3973 . T)) 
@@ -450,7 +450,7 @@ NIL
 NIL 
 (-130 S) 
 ((|constructor| (NIL "BinarySearchTree(\\spad{S}) is the domain of a binary trees where elements are ordered across the tree. A binary search tree is either empty or has a value which is an \\spad{S},{} and a right and left which are both BinaryTree(\\spad{S}) Elements are ordered across the tree.")) (|split| (((|Record| (|:| |less| $) (|:| |greater| $)) |#1| $) "\\indented{1}{split(\\spad{x},{}\\spad{b}) splits binary tree \\spad{b} into two trees,{} one with elements} \\indented{1}{greater than \\spad{x},{} the other with elements less than \\spad{x}.} \\blankline \\spad{X} t1:=binarySearchTree [1,{}2,{}3,{}4] \\spad{X} split(3,{}\\spad{t1})")) (|insertRoot!| (($ |#1| $) "\\indented{1}{insertRoot!(\\spad{x},{}\\spad{b}) inserts element \\spad{x} as a root of binary search tree \\spad{b}.} \\blankline \\spad{X} t1:=binarySearchTree [1,{}2,{}3,{}4] \\spad{X} insertRoot!(5,{}\\spad{t1})")) (|insert!| (($ |#1| $) "\\indented{1}{insert!(\\spad{x},{}\\spad{b}) inserts element \\spad{x} as leaves into binary search tree \\spad{b}.} \\blankline \\spad{X} t1:=binarySearchTree [1,{}2,{}3,{}4] \\spad{X} insert!(5,{}\\spad{t1})")) (|binarySearchTree| (($ (|List| |#1|)) "\\indented{1}{binarySearchTree(\\spad{l}) is not documented} \\blankline \\spad{X} binarySearchTree [1,{}2,{}3,{}4]"))) 
-((-4519 . T) (-4520 . T)) 
+((-4521 . T) (-4522 . T)) 
 ((|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090))))) 
 (-131 S) 
 ((|constructor| (NIL "The bit aggregate category models aggregates representing large quantities of Boolean data.")) (|xor| (($ $ $) "\\spad{xor(a,{}b)} returns the logical exclusive-or of bit aggregates \\axiom{a} and \\axiom{\\spad{b}}.")) (|or| (($ $ $) "\\spad{a or b} returns the logical or of bit aggregates \\axiom{a} and \\axiom{\\spad{b}}.")) (|and| (($ $ $) "\\spad{a and b} returns the logical and of bit aggregates \\axiom{a} and \\axiom{\\spad{b}}.")) (|nor| (($ $ $) "\\spad{nor(a,{}b)} returns the logical nor of bit aggregates \\axiom{a} and \\axiom{\\spad{b}}.")) (|nand| (($ $ $) "\\spad{nand(a,{}b)} returns the logical nand of bit aggregates \\axiom{a} and \\axiom{\\spad{b}}.")) (^ (($ $) "\\spad{^ b} returns the logical not of bit aggregate \\axiom{\\spad{b}}.")) (|not| (($ $) "\\spad{not(b)} returns the logical not of bit aggregate \\axiom{\\spad{b}}."))) 
@@ -458,7 +458,7 @@ NIL
 NIL 
 (-132) 
 ((|constructor| (NIL "The bit aggregate category models aggregates representing large quantities of Boolean data.")) (|xor| (($ $ $) "\\spad{xor(a,{}b)} returns the logical exclusive-or of bit aggregates \\axiom{a} and \\axiom{\\spad{b}}.")) (|or| (($ $ $) "\\spad{a or b} returns the logical or of bit aggregates \\axiom{a} and \\axiom{\\spad{b}}.")) (|and| (($ $ $) "\\spad{a and b} returns the logical and of bit aggregates \\axiom{a} and \\axiom{\\spad{b}}.")) (|nor| (($ $ $) "\\spad{nor(a,{}b)} returns the logical nor of bit aggregates \\axiom{a} and \\axiom{\\spad{b}}.")) (|nand| (($ $ $) "\\spad{nand(a,{}b)} returns the logical nand of bit aggregates \\axiom{a} and \\axiom{\\spad{b}}.")) (^ (($ $) "\\spad{^ b} returns the logical not of bit aggregate \\axiom{\\spad{b}}.")) (|not| (($ $) "\\spad{not(b)} returns the logical not of bit aggregate \\axiom{\\spad{b}}."))) 
-((-4520 . T) (-4519 . T) (-3973 . T)) 
+((-4522 . T) (-4521 . T) (-3973 . T)) 
 NIL 
 (-133 A S) 
 ((|constructor| (NIL "\\spadtype{BinaryTreeCategory(S)} is the category of binary trees: a tree which is either empty or else is a \\spadfun{node} consisting of a value and a \\spadfun{left} and \\spadfun{right},{} both binary trees.")) (|node| (($ $ |#2| $) "\\spad{node(left,{}v,{}right)} creates a binary tree with value \\spad{v},{} a binary tree \\spad{left},{} and a binary tree \\spad{right}. \\blankline")) (|finiteAggregate| ((|attribute|) "Binary trees have a finite number of components")) (|shallowlyMutable| ((|attribute|) "Binary trees have updateable components"))) 
@@ -466,15 +466,15 @@ NIL
 NIL 
 (-134 S) 
 ((|constructor| (NIL "\\spadtype{BinaryTreeCategory(S)} is the category of binary trees: a tree which is either empty or else is a \\spadfun{node} consisting of a value and a \\spadfun{left} and \\spadfun{right},{} both binary trees.")) (|node| (($ $ |#1| $) "\\spad{node(left,{}v,{}right)} creates a binary tree with value \\spad{v},{} a binary tree \\spad{left},{} and a binary tree \\spad{right}. \\blankline")) (|finiteAggregate| ((|attribute|) "Binary trees have a finite number of components")) (|shallowlyMutable| ((|attribute|) "Binary trees have updateable components"))) 
-((-4519 . T) (-4520 . T) (-3973 . T)) 
+((-4521 . T) (-4522 . T) (-3973 . T)) 
 NIL 
 (-135 S) 
 ((|constructor| (NIL "BinaryTournament creates a binary tournament with the elements of \\spad{ls} as values at the nodes.")) (|insert!| (($ |#1| $) "\\indented{1}{insert!(\\spad{x},{}\\spad{b}) inserts element \\spad{x} as leaves into binary tournament \\spad{b}.} \\blankline \\spad{X} t1:=binaryTournament [1,{}2,{}3,{}4] \\spad{X} insert!(5,{}\\spad{t1}) \\spad{X} \\spad{t1}")) (|binaryTournament| (($ (|List| |#1|)) "\\indented{1}{binaryTournament(\\spad{ls}) creates a binary tournament with the} \\indented{1}{elements of \\spad{ls} as values at the nodes.} \\blankline \\spad{X} binaryTournament [1,{}2,{}3,{}4]"))) 
-((-4519 . T) (-4520 . T)) 
+((-4521 . T) (-4522 . T)) 
 ((|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090))))) 
 (-136 S) 
 ((|constructor| (NIL "\\spadtype{BinaryTree(S)} is the domain of all binary trees. A binary tree over \\spad{S} is either empty or has a \\spadfun{value} which is an \\spad{S} and a \\spadfun{right} and \\spadfun{left} which are both binary trees.")) (|binaryTree| (($ $ |#1| $) "\\indented{1}{binaryTree(\\spad{l},{}\\spad{v},{}\\spad{r}) creates a binary tree with} \\indented{1}{value \\spad{v} with left subtree \\spad{l} and right subtree \\spad{r}.} \\blankline \\spad{X} t1:=binaryTree([1,{}2,{}3]) \\spad{X} t2:=binaryTree([4,{}5,{}6]) \\spad{X} binaryTree(\\spad{t1},{}[7,{}8,{}9],{}\\spad{t2})") (($ |#1|) "\\indented{1}{binaryTree(\\spad{v}) is an non-empty binary tree} \\indented{1}{with value \\spad{v},{} and left and right empty.} \\blankline \\spad{X} t1:=binaryTree([1,{}2,{}3])"))) 
-((-4519 . T) (-4520 . T)) 
+((-4521 . T) (-4522 . T)) 
 ((|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090))))) 
 (-137) 
 ((|constructor| (NIL "This is an \\spadtype{AbelianMonoid} with the cancellation property,{} \\spadignore{i.e.} \\tab{5}\\spad{ a+b = a+c => b=c }.\\spad{\\br} This is formalised by the partial subtraction operator,{} which satisfies the Axioms\\spad{\\br} \\tab{5}\\spad{c = a+b <=> c-b = a}")) (|subtractIfCan| (((|Union| $ "failed") $ $) "\\spad{subtractIfCan(x,{} y)} returns an element \\spad{z} such that \\spad{z+y=x} or \"failed\" if no such element exists."))) 
@@ -486,32 +486,32 @@ NIL
 NIL 
 (-139) 
 ((|constructor| (NIL "Members of the domain CardinalNumber are values indicating the cardinality of sets,{} both finite and infinite. Arithmetic operations are defined on cardinal numbers as follows. \\blankline If \\spad{x = \\#X} and \\spad{y = \\#Y} then\\spad{\\br} \\tab{5}\\spad{x+y = \\#(X+Y)} \\tab{5}disjoint union\\spad{\\br} \\tab{5}\\spad{x-y = \\#(X-Y)} \\tab{5}relative complement\\spad{\\br} \\tab{5}\\spad{x*y = \\#(X*Y)} \\tab{5}cartesian product\\spad{\\br} \\tab{5}\\spad{x**y = \\#(X**Y)} \\tab{4}\\spad{X**Y = g| g:Y->X} \\blankline The non-negative integers have a natural construction as cardinals\\spad{\\br} \\spad{0 = \\#\\{\\}},{} \\spad{1 = \\{0\\}},{} \\spad{2 = \\{0,{} 1\\}},{} ...,{} \\spad{n = \\{i| 0 <= i < n\\}}. \\blankline That \\spad{0} acts as a zero for the multiplication of cardinals is equivalent to the axiom of choice. \\blankline The generalized continuum hypothesis asserts \\spad{\\br} \\spad{2**Aleph i = Aleph(i+1)} and is independent of the axioms of set theory [Goedel 1940]. \\blankline Three commonly encountered cardinal numbers are\\spad{\\br} \\tab{5}\\spad{a = \\#Z} \\tab{5}countable infinity\\spad{\\br} \\tab{5}\\spad{c = \\#R} \\tab{5}the continuum\\spad{\\br} \\tab{5}\\spad{f = \\# g | g:[0,{}1]->R\\} \\blankline In this domain,{} these values are obtained using\\br \\tab{5}\\spad{a := Aleph 0},{} \\spad{c := 2**a},{} \\spad{f := 2**c}.")) (|generalizedContinuumHypothesisAssumed| (((|Boolean|) (|Boolean|)) "\\indented{1}{generalizedContinuumHypothesisAssumed(bool)} \\indented{1}{is used to dictate whether the hypothesis is to be assumed.} \\blankline \\spad{X} generalizedContinuumHypothesisAssumed \\spad{true} \\spad{X} a:=Aleph 0 \\spad{X} c:=2**a \\spad{X} f:=2**c")) (|generalizedContinuumHypothesisAssumed?| (((|Boolean|)) "\\indented{1}{generalizedContinuumHypothesisAssumed?()} \\indented{1}{tests if the hypothesis is currently assumed.} \\blankline \\spad{X} generalizedContinuumHypothesisAssumed?")) (|countable?| (((|Boolean|) $) "\\indented{1}{countable?(\\spad{a}) determines} \\indented{1}{whether \\spad{a} is a countable cardinal,{}} \\indented{1}{\\spadignore{i.e.} an integer or \\spad{Aleph 0}.} \\blankline \\spad{X} c2:=2::CardinalNumber \\spad{X} countable? \\spad{c2} \\spad{X} A0:=Aleph 0 \\spad{X} countable? \\spad{A0} \\spad{X} A1:=Aleph 1 \\spad{X} countable? \\spad{A1}")) (|finite?| (((|Boolean|) $) "\\indented{1}{finite?(\\spad{a}) determines whether} \\indented{1}{\\spad{a} is a finite cardinal,{} \\spadignore{i.e.} an integer.} \\blankline \\spad{X} c2:=2::CardinalNumber \\spad{X} finite? \\spad{c2} \\spad{X} A0:=Aleph 0 \\spad{X} finite? \\spad{A0}")) (|Aleph| (($ (|NonNegativeInteger|)) "\\indented{1}{Aleph(\\spad{n}) provides the named (infinite) cardinal number.} \\blankline \\spad{X} A0:=Aleph 0")) (** (($ $ $) "\\indented{1}{\\spad{x**y} returns \\spad{\\#(X**Y)} where \\spad{X**Y} is defined} \\indented{2}{as \\spad{\\{g| g:Y->X\\}}.} \\blankline \\spad{X} c2:=2::CardinalNumber \\spad{X} \\spad{c2**c2} \\spad{X} A1:=Aleph 1 \\spad{X} \\spad{A1**c2} \\spad{X} generalizedContinuumHypothesisAssumed \\spad{true} \\spad{X} \\spad{A1**A1}")) (- (((|Union| $ "failed") $ $) "\\indented{1}{\\spad{x - y} returns an element \\spad{z} such that} \\indented{1}{\\spad{z+y=x} or \"failed\" if no such element exists.} \\blankline \\spad{X} c2:=2::CardinalNumber \\spad{X} \\spad{c2}-\\spad{c2} \\spad{X} A1:=Aleph 1 \\spad{X} \\spad{A1}-\\spad{c2}")) (|commutative| ((|attribute| "*") "a domain \\spad{D} has \\spad{commutative(\"*\")} if it has an operation \\spad{\"*\": (D,{}D) -> D} which is commutative."))) 
-(((-4521 "*") . T)) 
+(((-4523 "*") . T)) 
 NIL 
-(-140 |minix| -2570 S T$) 
+(-140 |minix| -1965 S T$) 
 ((|constructor| (NIL "This package provides functions to enable conversion of tensors given conversion of the components.")) (|map| (((|CartesianTensor| |#1| |#2| |#4|) (|Mapping| |#4| |#3|) (|CartesianTensor| |#1| |#2| |#3|)) "\\spad{map(f,{}ts)} does a componentwise conversion of the tensor \\spad{ts} to a tensor with components of type \\spad{T}.")) (|reshape| (((|CartesianTensor| |#1| |#2| |#4|) (|List| |#4|) (|CartesianTensor| |#1| |#2| |#3|)) "\\spad{reshape(lt,{}ts)} organizes the list of components \\spad{lt} into a tensor with the same shape as \\spad{ts}."))) 
 NIL 
 NIL 
-(-141 |minix| -2570 R) 
+(-141 |minix| -1965 R) 
 ((|constructor| (NIL "CartesianTensor(minix,{}dim,{}\\spad{R}) provides Cartesian tensors with components belonging to a commutative ring \\spad{R}. These tensors can have any number of indices. Each index takes values from \\spad{minix} to \\spad{minix + dim - 1}.")) (|sample| (($) "\\spad{sample()} returns an object of type \\%.")) (|unravel| (($ (|List| |#3|)) "\\spad{unravel(t)} produces a tensor from a list of components such that \\indented{2}{\\spad{unravel(ravel(t)) = t}.}")) (|ravel| (((|List| |#3|) $) "\\indented{1}{ravel(\\spad{t}) produces a list of components from a tensor such that} \\indented{3}{\\spad{unravel(ravel(t)) = t}.} \\blankline \\spad{X} n:SquareMatrix(2,{}Integer):=matrix [[2,{}3],{}[0,{}1]] \\spad{X} tn:CartesianTensor(1,{}2,{}Integer)\\spad{:=n} \\spad{X} ravel \\spad{tn}")) (|leviCivitaSymbol| (($) "\\indented{1}{leviCivitaSymbol() is the rank \\spad{dim} tensor defined by} \\indented{1}{\\spad{leviCivitaSymbol()(i1,{}...idim) = +1/0/-1}} \\indented{1}{if \\spad{i1,{}...,{}idim} is an even/is nota /is an odd permutation} \\indented{1}{of \\spad{minix,{}...,{}minix+dim-1}.} \\blankline \\spad{X} lcs:CartesianTensor(1,{}2,{}Integer):=leviCivitaSymbol()")) (|kroneckerDelta| (($) "\\indented{1}{kroneckerDelta() is the rank 2 tensor defined by} \\indented{4}{\\spad{kroneckerDelta()(i,{}j)}} \\indented{7}{\\spad{= 1\\space{2}if i = j}} \\indented{7}{\\spad{= 0 if\\space{2}i \\^= j}} \\blankline \\spad{X} delta:CartesianTensor(1,{}2,{}Integer):=kroneckerDelta()")) (|reindex| (($ $ (|List| (|Integer|))) "\\indented{1}{reindex(\\spad{t},{}[\\spad{i1},{}...,{}idim]) permutes the indices of \\spad{t}.} \\indented{1}{For example,{} if \\spad{r = reindex(t,{} [4,{}1,{}2,{}3])}} \\indented{1}{for a rank 4 tensor \\spad{t},{}} \\indented{1}{then \\spad{r} is the rank for tensor given by} \\indented{5}{\\spad{r(i,{}j,{}k,{}l) = t(l,{}i,{}j,{}k)}.} \\blankline \\spad{X} n:SquareMatrix(2,{}Integer):=matrix [[2,{}3],{}[0,{}1]] \\spad{X} tn:CartesianTensor(1,{}2,{}Integer)\\spad{:=n} \\spad{X} p:=product(\\spad{tn},{}\\spad{tn}) \\spad{X} reindex(\\spad{p},{}[4,{}3,{}2,{}1])")) (|transpose| (($ $ (|Integer|) (|Integer|)) "\\indented{1}{transpose(\\spad{t},{}\\spad{i},{}\\spad{j}) exchanges the \\spad{i}\\spad{-}th and \\spad{j}\\spad{-}th} \\indented{1}{indices of \\spad{t}. For example,{} if \\spad{r = transpose(t,{}2,{}3)}} \\indented{1}{for a rank 4 tensor \\spad{t},{} then \\spad{r} is the rank 4 tensor} \\indented{1}{given by} \\indented{5}{\\spad{r(i,{}j,{}k,{}l) = t(i,{}k,{}j,{}l)}.} \\blankline \\spad{X} m:SquareMatrix(2,{}Integer):=matrix [[1,{}2],{}[4,{}5]] \\spad{X} tm:CartesianTensor(1,{}2,{}Integer)\\spad{:=m} \\spad{X} tn:CartesianTensor(1,{}2,{}Integer)\\spad{:=}[\\spad{tm},{}\\spad{tm}] \\spad{X} transpose(\\spad{tn},{}1,{}2)") (($ $) "\\indented{1}{transpose(\\spad{t}) exchanges the first and last indices of \\spad{t}.} \\indented{1}{For example,{} if \\spad{r = transpose(t)} for a rank 4} \\indented{1}{tensor \\spad{t},{} then \\spad{r} is the rank 4 tensor given by} \\indented{5}{\\spad{r(i,{}j,{}k,{}l) = t(l,{}j,{}k,{}i)}.} \\blankline \\spad{X} m:SquareMatrix(2,{}Integer):=matrix [[1,{}2],{}[4,{}5]] \\spad{X} Tm:CartesianTensor(1,{}2,{}Integer)\\spad{:=m} \\spad{X} transpose(\\spad{Tm})")) (|contract| (($ $ (|Integer|) (|Integer|)) "\\indented{1}{contract(\\spad{t},{}\\spad{i},{}\\spad{j}) is the contraction of tensor \\spad{t} which} \\indented{1}{sums along the \\spad{i}\\spad{-}th and \\spad{j}\\spad{-}th indices.} \\indented{1}{For example,{}\\space{2}if} \\indented{1}{\\spad{r = contract(t,{}1,{}3)} for a rank 4 tensor \\spad{t},{} then} \\indented{1}{\\spad{r} is the rank 2 \\spad{(= 4 - 2)} tensor given by} \\indented{5}{\\spad{r(i,{}j) = sum(h=1..dim,{}t(h,{}i,{}h,{}j))}.} \\blankline \\spad{X} m:SquareMatrix(2,{}Integer):=matrix [[1,{}2],{}[4,{}5]] \\spad{X} Tm:CartesianTensor(1,{}2,{}Integer)\\spad{:=m} \\spad{X} v:DirectProduct(2,{}Integer):=directProduct [3,{}4] \\spad{X} Tv:CartesianTensor(1,{}2,{}Integer)\\spad{:=v} \\spad{X} Tmv:=contract(\\spad{Tm},{}2,{}1)") (($ $ (|Integer|) $ (|Integer|)) "\\indented{1}{contract(\\spad{t},{}\\spad{i},{}\\spad{s},{}\\spad{j}) is the inner product of tenors \\spad{s} and \\spad{t}} \\indented{1}{which sums along the \\spad{k1}\\spad{-}th index of} \\indented{1}{\\spad{t} and the \\spad{k2}\\spad{-}th index of \\spad{s}.} \\indented{1}{For example,{} if \\spad{r = contract(s,{}2,{}t,{}1)} for rank 3 tensors} \\indented{1}{rank 3 tensors \\spad{s} and \\spad{t},{} then \\spad{r} is} \\indented{1}{the rank 4 \\spad{(= 3 + 3 - 2)} tensor\\space{2}given by} \\indented{5}{\\spad{r(i,{}j,{}k,{}l) = sum(h=1..dim,{}s(i,{}h,{}j)*t(h,{}k,{}l))}.} \\blankline \\spad{X} m:SquareMatrix(2,{}Integer):=matrix [[1,{}2],{}[4,{}5]] \\spad{X} Tm:CartesianTensor(1,{}2,{}Integer)\\spad{:=m} \\spad{X} v:DirectProduct(2,{}Integer):=directProduct [3,{}4] \\spad{X} Tv:CartesianTensor(1,{}2,{}Integer)\\spad{:=v} \\spad{X} Tmv:=contract(\\spad{Tm},{}2,{}\\spad{Tv},{}1)")) (* (($ $ $) "\\indented{1}{\\spad{s*t} is the inner product of the tensors \\spad{s} and \\spad{t} which contracts} \\indented{1}{the last index of \\spad{s} with the first index of \\spad{t},{} that is,{}} \\indented{5}{\\spad{t*s = contract(t,{}rank t,{} s,{} 1)}} \\indented{5}{\\spad{t*s = sum(k=1..N,{} t[i1,{}..,{}iN,{}k]*s[k,{}j1,{}..,{}jM])}} \\indented{1}{This is compatible with the use of \\spad{M*v} to denote} \\indented{1}{the matrix-vector inner product.} \\blankline \\spad{X} m:SquareMatrix(2,{}Integer):=matrix [[1,{}2],{}[4,{}5]] \\spad{X} Tm:CartesianTensor(1,{}2,{}Integer)\\spad{:=m} \\spad{X} v:DirectProduct(2,{}Integer):=directProduct [3,{}4] \\spad{X} Tv:CartesianTensor(1,{}2,{}Integer)\\spad{:=v} \\spad{X} Tm*Tv")) (|product| (($ $ $) "\\indented{1}{product(\\spad{s},{}\\spad{t}) is the outer product of the tensors \\spad{s} and \\spad{t}.} \\indented{1}{For example,{} if \\spad{r = product(s,{}t)} for rank 2 tensors} \\indented{1}{\\spad{s} and \\spad{t},{} then \\spad{r} is a rank 4 tensor given by} \\indented{5}{\\spad{r(i,{}j,{}k,{}l) = s(i,{}j)*t(k,{}l)}.} \\blankline \\spad{X} m:SquareMatrix(2,{}Integer):=matrix [[1,{}2],{}[4,{}5]] \\spad{X} Tm:CartesianTensor(1,{}2,{}Integer)\\spad{:=m} \\spad{X} n:SquareMatrix(2,{}Integer):=matrix [[2,{}3],{}[0,{}1]] \\spad{X} Tn:CartesianTensor(1,{}2,{}Integer)\\spad{:=n} \\spad{X} Tmn:=product(\\spad{Tm},{}\\spad{Tn})")) (|elt| ((|#3| $ (|List| (|Integer|))) "\\indented{1}{elt(\\spad{t},{}[\\spad{i1},{}...,{}iN]) gives a component of a rank \\spad{N} tensor.} \\blankline \\spad{X} \\spad{v:=}[2,{}3] \\spad{X} tv:CartesianTensor(1,{}2,{}Integer)\\spad{:=v} \\spad{X} tm:CartesianTensor(1,{}2,{}Integer)\\spad{:=}[\\spad{tv},{}\\spad{tv}] \\spad{X} tn:CartesianTensor(1,{}2,{}Integer)\\spad{:=}[\\spad{tm},{}\\spad{tm}] \\spad{X} tp:CartesianTensor(1,{}2,{}Integer)\\spad{:=}[\\spad{tn},{}\\spad{tn}] \\spad{X} tq:CartesianTensor(1,{}2,{}Integer)\\spad{:=}[\\spad{tp},{}\\spad{tp}] \\spad{X} elt(\\spad{tq},{}[2,{}2,{}2,{}2,{}2])") ((|#3| $ (|Integer|) (|Integer|) (|Integer|) (|Integer|)) "\\indented{1}{elt(\\spad{t},{}\\spad{i},{}\\spad{j},{}\\spad{k},{}\\spad{l}) gives a component of a rank 4 tensor.} \\blankline \\spad{X} \\spad{v:=}[2,{}3] \\spad{X} tv:CartesianTensor(1,{}2,{}Integer)\\spad{:=v} \\spad{X} tm:CartesianTensor(1,{}2,{}Integer)\\spad{:=}[\\spad{tv},{}\\spad{tv}] \\spad{X} tn:CartesianTensor(1,{}2,{}Integer)\\spad{:=}[\\spad{tm},{}\\spad{tm}] \\spad{X} tp:CartesianTensor(1,{}2,{}Integer)\\spad{:=}[\\spad{tn},{}\\spad{tn}] \\spad{X} elt(\\spad{tp},{}2,{}2,{}2,{}2) \\spad{X} \\spad{tp}[2,{}2,{}2,{}2]") ((|#3| $ (|Integer|) (|Integer|) (|Integer|)) "\\indented{1}{elt(\\spad{t},{}\\spad{i},{}\\spad{j},{}\\spad{k}) gives a component of a rank 3 tensor.} \\blankline \\spad{X} \\spad{v:=}[2,{}3] \\spad{X} tv:CartesianTensor(1,{}2,{}Integer)\\spad{:=v} \\spad{X} tm:CartesianTensor(1,{}2,{}Integer)\\spad{:=}[\\spad{tv},{}\\spad{tv}] \\spad{X} tn:CartesianTensor(1,{}2,{}Integer)\\spad{:=}[\\spad{tm},{}\\spad{tm}] \\spad{X} elt(\\spad{tn},{}2,{}2,{}2) \\spad{X} \\spad{tn}[2,{}2,{}2]") ((|#3| $ (|Integer|) (|Integer|)) "\\indented{1}{elt(\\spad{t},{}\\spad{i},{}\\spad{j}) gives a component of a rank 2 tensor.} \\blankline \\spad{X} \\spad{v:=}[2,{}3] \\spad{X} tv:CartesianTensor(1,{}2,{}Integer)\\spad{:=v} \\spad{X} tm:CartesianTensor(1,{}2,{}Integer)\\spad{:=}[\\spad{tv},{}\\spad{tv}] \\spad{X} elt(\\spad{tm},{}2,{}2) \\spad{X} \\spad{tm}[2,{}2]") ((|#3| $ (|Integer|)) "\\indented{1}{elt(\\spad{t},{}\\spad{i}) gives a component of a rank 1 tensor.} \\blankline \\spad{X} \\spad{v:=}[2,{}3] \\spad{X} tv:CartesianTensor(1,{}2,{}Integer)\\spad{:=v} \\spad{X} elt(\\spad{tv},{}2) \\spad{X} \\spad{tv}[2]") ((|#3| $) "\\indented{1}{elt(\\spad{t}) gives the component of a rank 0 tensor.} \\blankline \\spad{X} tv:CartesianTensor(1,{}2,{}Integer)\\spad{:=8} \\spad{X} elt(\\spad{tv}) \\spad{X} \\spad{tv}[]")) (|rank| (((|NonNegativeInteger|) $) "\\indented{1}{rank(\\spad{t}) returns the tensorial rank of \\spad{t} (that is,{} the} \\indented{1}{number of indices).\\space{2}This is the same as the graded module} \\indented{1}{degree.} \\blankline \\spad{X} CT:=CARTEN(1,{}2,{}Integer) \\spad{X} \\spad{t0:CT:=8} \\spad{X} rank \\spad{t0}")) (|coerce| (($ (|List| $)) "\\indented{1}{coerce([\\spad{t_1},{}...,{}t_dim]) allows tensors to be constructed} \\indented{1}{using lists.} \\blankline \\spad{X} \\spad{v:=}[2,{}3] \\spad{X} tv:CartesianTensor(1,{}2,{}Integer)\\spad{:=v} \\spad{X} tm:CartesianTensor(1,{}2,{}Integer)\\spad{:=}[\\spad{tv},{}\\spad{tv}]") (($ (|List| |#3|)) "\\indented{1}{coerce([\\spad{r_1},{}...,{}r_dim]) allows tensors to be constructed} \\indented{1}{using lists.} \\blankline \\spad{X} \\spad{v:=}[2,{}3] \\spad{X} tv:CartesianTensor(1,{}2,{}Integer)\\spad{:=v}") (($ (|SquareMatrix| |#2| |#3|)) "\\indented{1}{coerce(\\spad{m}) views a matrix as a rank 2 tensor.} \\blankline \\spad{X} v:SquareMatrix(2,{}Integer)\\spad{:=}[[1,{}2],{}[3,{}4]] \\spad{X} tv:CartesianTensor(1,{}2,{}Integer)\\spad{:=v}") (($ (|DirectProduct| |#2| |#3|)) "\\indented{1}{coerce(\\spad{v}) views a vector as a rank 1 tensor.} \\blankline \\spad{X} v:DirectProduct(2,{}Integer):=directProduct [3,{}4] \\spad{X} tv:CartesianTensor(1,{}2,{}Integer)\\spad{:=v}"))) 
 NIL 
 NIL 
 (-142) 
 ((|constructor| (NIL "This domain allows classes of characters to be defined and manipulated efficiently.")) (|alphanumeric| (($) "\\spad{alphanumeric()} returns the class of all characters for which alphanumeric? is \\spad{true}.")) (|alphabetic| (($) "\\spad{alphabetic()} returns the class of all characters for which alphabetic? is \\spad{true}.")) (|lowerCase| (($) "\\spad{lowerCase()} returns the class of all characters for which lowerCase? is \\spad{true}.")) (|upperCase| (($) "\\spad{upperCase()} returns the class of all characters for which upperCase? is \\spad{true}.")) (|hexDigit| (($) "\\spad{hexDigit()} returns the class of all characters for which hexDigit? is \\spad{true}.")) (|digit| (($) "\\spad{digit()} returns the class of all characters for which digit? is \\spad{true}.")) (|charClass| (($ (|List| (|Character|))) "\\spad{charClass(l)} creates a character class which contains exactly the characters given in the list \\spad{l}.") (($ (|String|)) "\\spad{charClass(s)} creates a character class which contains exactly the characters given in the string \\spad{s}."))) 
-((-4519 . T) (-4509 . T) (-4520 . T)) 
-((|HasCategory| (-147) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-147) (QUOTE (-370))) (|HasCategory| (-147) (QUOTE (-842))) (|HasCategory| (-147) (QUOTE (-1090))) (-12 (|HasCategory| (-147) (LIST (QUOTE -303) (QUOTE (-147)))) (|HasCategory| (-147) (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| (-147) (LIST (QUOTE -303) (QUOTE (-147)))) (|HasCategory| (-147) (QUOTE (-370)))) (-12 (|HasCategory| (-147) (LIST (QUOTE -303) (QUOTE (-147)))) (|HasCategory| (-147) (QUOTE (-1090)))))) 
+((-4521 . T) (-4511 . T) (-4522 . T)) 
+((|HasCategory| (-147) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-147) (QUOTE (-370))) (|HasCategory| (-147) (QUOTE (-842))) (|HasCategory| (-147) (QUOTE (-1090))) (-12 (|HasCategory| (-147) (LIST (QUOTE -303) (QUOTE (-147)))) (|HasCategory| (-147) (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| (-147) (LIST (QUOTE -303) (QUOTE (-147)))) (|HasCategory| (-147) (QUOTE (-370)))) (-12 (|HasCategory| (-147) (LIST (QUOTE -303) (QUOTE (-147)))) (|HasCategory| (-147) (QUOTE (-1090)))))) 
 (-143 R Q A) 
 ((|constructor| (NIL "CommonDenominator provides functions to compute the common denominator of a finite linear aggregate of elements of the quotient field of an integral domain.")) (|splitDenominator| (((|Record| (|:| |num| |#3|) (|:| |den| |#1|)) |#3|) "\\spad{splitDenominator([q1,{}...,{}qn])} returns \\spad{[[p1,{}...,{}pn],{} d]} such that \\spad{\\spad{qi} = pi/d} and \\spad{d} is a common denominator for the \\spad{qi}\\spad{'s}.")) (|clearDenominator| ((|#3| |#3|) "\\spad{clearDenominator([q1,{}...,{}qn])} returns \\spad{[p1,{}...,{}pn]} such that \\spad{\\spad{qi} = pi/d} where \\spad{d} is a common denominator for the \\spad{qi}\\spad{'s}.")) (|commonDenominator| ((|#1| |#3|) "\\spad{commonDenominator([q1,{}...,{}qn])} returns a common denominator \\spad{d} for \\spad{q1},{}...,{}\\spad{qn}."))) 
 NIL 
 NIL 
 (-144) 
 ((|constructor| (NIL "This is a low-level domain which implements matrices (two dimensional arrays) of complex double precision floating point numbers. Indexing is 0 based,{} there is no bound checking (unless provided by lower level).")) (|qnew| (($ (|Integer|) (|Integer|)) "\\indented{1}{qnew(\\spad{n},{} \\spad{m}) creates a new uninitialized \\spad{n} by \\spad{m} matrix.} \\blankline \\spad{X} t1:CDFMAT:=qnew(3,{}4)"))) 
-((-4519 . T) (-4520 . T)) 
-((|HasCategory| (-169 (-215)) (QUOTE (-1090))) (-12 (|HasCategory| (-169 (-215)) (LIST (QUOTE -303) (LIST (QUOTE -169) (QUOTE (-215))))) (|HasCategory| (-169 (-215)) (QUOTE (-1090)))) (|HasCategory| (-169 (-215)) (QUOTE (-301))) (|HasCategory| (-169 (-215)) (QUOTE (-558))) (|HasAttribute| (-169 (-215)) (QUOTE (-4521 "*"))) (|HasCategory| (-169 (-215)) (QUOTE (-172))) (|HasCategory| (-169 (-215)) (QUOTE (-365)))) 
+((-4521 . T) (-4522 . T)) 
+((|HasCategory| (-169 (-215)) (QUOTE (-1090))) (-12 (|HasCategory| (-169 (-215)) (LIST (QUOTE -303) (LIST (QUOTE -169) (QUOTE (-215))))) (|HasCategory| (-169 (-215)) (QUOTE (-1090)))) (|HasCategory| (-169 (-215)) (QUOTE (-301))) (|HasCategory| (-169 (-215)) (QUOTE (-558))) (|HasAttribute| (-169 (-215)) (QUOTE (-4523 "*"))) (|HasCategory| (-169 (-215)) (QUOTE (-172))) (|HasCategory| (-169 (-215)) (QUOTE (-365)))) 
 (-145) 
 ((|constructor| (NIL "This is a low-level domain which implements vectors (one dimensional arrays) of complex double precision floating point numbers. Indexing is 0 based,{} there is no bound checking (unless provided by lower level).")) (|vector| (($ (|List| (|Complex| (|DoubleFloat|)))) "\\indented{1}{vector(\\spad{l}) converts the list \\spad{l} to a vector.} \\blankline \\spad{X} t1:List(Complex(DoubleFloat))\\spad{:=}[1+2*\\%\\spad{i},{}3+4*\\%\\spad{i},{}\\spad{-5}-6*\\%\\spad{i}] \\spad{X} t2:CDFVEC:=vector(\\spad{t1})")) (|qnew| (($ (|Integer|)) "\\indented{1}{qnew(\\spad{n}) creates a new uninitialized vector of length \\spad{n}.} \\blankline \\spad{X} t1:CDFVEC:=qnew 7"))) 
-((-4520 . T) (-4519 . T)) 
-((|HasCategory| (-169 (-215)) (QUOTE (-1090))) (|HasCategory| (-169 (-215)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-169 (-215)) (QUOTE (-842))) (-2198 (|HasCategory| (-169 (-215)) (QUOTE (-842))) (|HasCategory| (-169 (-215)) (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (|HasCategory| (-169 (-215)) (QUOTE (-25))) (|HasCategory| (-169 (-215)) (QUOTE (-23))) (|HasCategory| (-169 (-215)) (QUOTE (-21))) (|HasCategory| (-169 (-215)) (QUOTE (-716))) (|HasCategory| (-169 (-215)) (QUOTE (-1047))) (-12 (|HasCategory| (-169 (-215)) (QUOTE (-1002))) (|HasCategory| (-169 (-215)) (QUOTE (-1047)))) (-12 (|HasCategory| (-169 (-215)) (LIST (QUOTE -303) (LIST (QUOTE -169) (QUOTE (-215))))) (|HasCategory| (-169 (-215)) (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| (-169 (-215)) (LIST (QUOTE -303) (LIST (QUOTE -169) (QUOTE (-215))))) (|HasCategory| (-169 (-215)) (QUOTE (-842)))) (-12 (|HasCategory| (-169 (-215)) (LIST (QUOTE -303) (LIST (QUOTE -169) (QUOTE (-215))))) (|HasCategory| (-169 (-215)) (QUOTE (-1090)))))) 
+((-4522 . T) (-4521 . T)) 
+((|HasCategory| (-169 (-215)) (QUOTE (-1090))) (|HasCategory| (-169 (-215)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-169 (-215)) (QUOTE (-842))) (-2199 (|HasCategory| (-169 (-215)) (QUOTE (-842))) (|HasCategory| (-169 (-215)) (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (|HasCategory| (-169 (-215)) (QUOTE (-25))) (|HasCategory| (-169 (-215)) (QUOTE (-23))) (|HasCategory| (-169 (-215)) (QUOTE (-21))) (|HasCategory| (-169 (-215)) (QUOTE (-716))) (|HasCategory| (-169 (-215)) (QUOTE (-1047))) (-12 (|HasCategory| (-169 (-215)) (QUOTE (-1002))) (|HasCategory| (-169 (-215)) (QUOTE (-1047)))) (-12 (|HasCategory| (-169 (-215)) (LIST (QUOTE -303) (LIST (QUOTE -169) (QUOTE (-215))))) (|HasCategory| (-169 (-215)) (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| (-169 (-215)) (LIST (QUOTE -303) (LIST (QUOTE -169) (QUOTE (-215))))) (|HasCategory| (-169 (-215)) (QUOTE (-842)))) (-12 (|HasCategory| (-169 (-215)) (LIST (QUOTE -303) (LIST (QUOTE -169) (QUOTE (-215))))) (|HasCategory| (-169 (-215)) (QUOTE (-1090)))))) 
 (-146) 
 ((|constructor| (NIL "Category for the usual combinatorial functions.")) (|permutation| (($ $ $) "\\spad{permutation(n,{} m)} returns the number of permutations of \\spad{n} objects taken \\spad{m} at a time. Note that \\spad{permutation(n,{}m) = n!/(n-m)!}.")) (|factorial| (($ $) "\\spad{factorial(n)} computes the factorial of \\spad{n} (denoted in the literature by \\spad{n!}) Note that \\spad{n! = n (n-1)! when n > 0}; also,{} \\spad{0! = 1}.")) (|binomial| (($ $ $) "\\indented{1}{binomial(\\spad{n},{}\\spad{r}) returns the \\spad{(n,{}r)} binomial coefficient} \\indented{1}{(often denoted in the literature by \\spad{C(n,{}r)}).} \\indented{1}{Note that \\spad{C(n,{}r) = n!/(r!(n-r)!)} where \\spad{n >= r >= 0}.} \\blankline \\spad{X} [binomial(5,{}\\spad{i}) for \\spad{i} in 0..5]"))) 
 NIL 
@@ -522,7 +522,7 @@ NIL
 NIL 
 (-148) 
 ((|constructor| (NIL "Rings of Characteristic Non Zero")) (|charthRoot| (((|Union| $ "failed") $) "\\spad{charthRoot(x)} returns the \\spad{p}th root of \\spad{x} where \\spad{p} is the characteristic of the ring."))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-149 R) 
 ((|constructor| (NIL "This package provides a characteristicPolynomial function for any matrix over a commutative ring.")) (|characteristicPolynomial| ((|#1| (|Matrix| |#1|) |#1|) "\\spad{characteristicPolynomial(m,{}r)} computes the characteristic polynomial of the matrix \\spad{m} evaluated at the point \\spad{r}. In particular,{} if \\spad{r} is the polynomial \\spad{'x},{} then it returns the characteristic polynomial expressed as a polynomial in \\spad{'x}."))) 
@@ -530,7 +530,7 @@ NIL
 NIL 
 (-150) 
 ((|constructor| (NIL "Rings of Characteristic Zero."))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-151 -1478 UP UPUP) 
 ((|constructor| (NIL "Tools to send a point to infinity on an algebraic curve.")) (|chvar| (((|Record| (|:| |func| |#3|) (|:| |poly| |#3|) (|:| |c1| (|Fraction| |#2|)) (|:| |c2| (|Fraction| |#2|)) (|:| |deg| (|NonNegativeInteger|))) |#3| |#3|) "\\spad{chvar(f(x,{}y),{} p(x,{}y))} returns \\spad{[g(z,{}t),{} q(z,{}t),{} c1(z),{} c2(z),{} n]} such that under the change of variable \\spad{x = c1(z)},{} \\spad{y = t * c2(z)},{} one gets \\spad{f(x,{}y) = g(z,{}t)}. The algebraic relation between \\spad{x} and \\spad{y} is \\spad{p(x,{} y) = 0}. The algebraic relation between \\spad{z} and \\spad{t} is \\spad{q(z,{} t) = 0}.")) (|eval| ((|#3| |#3| (|Fraction| |#2|) (|Fraction| |#2|)) "\\spad{eval(p(x,{}y),{} f(x),{} g(x))} returns \\spad{p(f(x),{} y * g(x))}.")) (|goodPoint| ((|#1| |#3| |#3|) "\\spad{goodPoint(p,{} q)} returns an integer a such that a is neither a pole of \\spad{p(x,{}y)} nor a branch point of \\spad{q(x,{}y) = 0}.")) (|rootPoly| (((|Record| (|:| |exponent| (|NonNegativeInteger|)) (|:| |coef| (|Fraction| |#2|)) (|:| |radicand| |#2|)) (|Fraction| |#2|) (|NonNegativeInteger|)) "\\spad{rootPoly(g,{} n)} returns \\spad{[m,{} c,{} P]} such that \\spad{c * g ** (1/n) = P ** (1/m)} thus if \\spad{y**n = g},{} then \\spad{z**m = P} where \\spad{z = c * y}.")) (|radPoly| (((|Union| (|Record| (|:| |radicand| (|Fraction| |#2|)) (|:| |deg| (|NonNegativeInteger|))) "failed") |#3|) "\\spad{radPoly(p(x,{} y))} returns \\spad{[c(x),{} n]} if \\spad{p} is of the form \\spad{y**n - c(x)},{} \"failed\" otherwise.")) (|mkIntegral| (((|Record| (|:| |coef| (|Fraction| |#2|)) (|:| |poly| |#3|)) |#3|) "\\spad{mkIntegral(p(x,{}y))} returns \\spad{[c(x),{} q(x,{}z)]} such that \\spad{z = c * y} is integral. The algebraic relation between \\spad{x} and \\spad{y} is \\spad{p(x,{} y) = 0}. The algebraic relation between \\spad{x} and \\spad{z} is \\spad{q(x,{} z) = 0}."))) 
@@ -543,14 +543,14 @@ NIL
 (-153 A S) 
 ((|constructor| (NIL "A collection is a homogeneous aggregate which can built from list of members. The operation used to build the aggregate is generically named \\spadfun{construct}. However,{} each collection provides its own special function with the same name as the data type,{} except with an initial lower case letter,{} \\spadignore{e.g.} \\spadfun{list} for \\spadtype{List},{} \\spadfun{flexibleArray} for \\spadtype{FlexibleArray},{} and so on.")) (|removeDuplicates| (($ $) "\\spad{removeDuplicates(u)} returns a copy of \\spad{u} with all duplicates removed.")) (|select| (($ (|Mapping| (|Boolean|) |#2|) $) "\\spad{select(p,{}u)} returns a copy of \\spad{u} containing only those elements such \\axiom{\\spad{p}(\\spad{x})} is \\spad{true}. Note that \\axiom{select(\\spad{p},{}\\spad{u}) \\spad{==} [\\spad{x} for \\spad{x} in \\spad{u} | \\spad{p}(\\spad{x})]}.")) (|remove| (($ |#2| $) "\\spad{remove(x,{}u)} returns a copy of \\spad{u} with all elements \\axiom{\\spad{y} = \\spad{x}} removed. Note that \\axiom{remove(\\spad{y},{}\\spad{c}) \\spad{==} [\\spad{x} for \\spad{x} in \\spad{c} | \\spad{x} \\spad{^=} \\spad{y}]}.") (($ (|Mapping| (|Boolean|) |#2|) $) "\\spad{remove(p,{}u)} returns a copy of \\spad{u} removing all elements \\spad{x} such that \\axiom{\\spad{p}(\\spad{x})} is \\spad{true}. Note that \\axiom{remove(\\spad{p},{}\\spad{u}) \\spad{==} [\\spad{x} for \\spad{x} in \\spad{u} | not \\spad{p}(\\spad{x})]}.")) (|reduce| ((|#2| (|Mapping| |#2| |#2| |#2|) $ |#2| |#2|) "\\spad{reduce(f,{}u,{}x,{}z)} reduces the binary operation \\spad{f} across \\spad{u},{} stopping when an \"absorbing element\" \\spad{z} is encountered. As for \\axiom{reduce(\\spad{f},{}\\spad{u},{}\\spad{x})},{} \\spad{x} is the identity operation of \\spad{f}. Same as \\axiom{reduce(\\spad{f},{}\\spad{u},{}\\spad{x})} when \\spad{u} contains no element \\spad{z}. Thus the third argument \\spad{x} is returned when \\spad{u} is empty.") ((|#2| (|Mapping| |#2| |#2| |#2|) $ |#2|) "\\spad{reduce(f,{}u,{}x)} reduces the binary operation \\spad{f} across \\spad{u},{} where \\spad{x} is the identity operation of \\spad{f}. Same as \\axiom{reduce(\\spad{f},{}\\spad{u})} if \\spad{u} has 2 or more elements. Returns \\axiom{\\spad{f}(\\spad{x},{}\\spad{y})} if \\spad{u} has one element \\spad{y},{} \\spad{x} if \\spad{u} is empty. For example,{} \\axiom{reduce(+,{}\\spad{u},{}0)} returns the sum of the elements of \\spad{u}.") ((|#2| (|Mapping| |#2| |#2| |#2|) $) "\\indented{1}{reduce(\\spad{f},{}\\spad{u}) reduces the binary operation \\spad{f} across \\spad{u}. For example,{}} \\indented{1}{if \\spad{u} is \\axiom{[\\spad{x},{}\\spad{y},{}...,{}\\spad{z}]} then \\axiom{reduce(\\spad{f},{}\\spad{u})}} \\indented{1}{returns \\axiom{\\spad{f}(..\\spad{f}(\\spad{f}(\\spad{x},{}\\spad{y}),{}...),{}\\spad{z})}.} \\indented{1}{Note that if \\spad{u} has one element \\spad{x},{} \\axiom{reduce(\\spad{f},{}\\spad{u})} returns \\spad{x}.} \\indented{1}{Error: if \\spad{u} is empty.} \\blankline \\spad{C} )clear all \\spad{X} reduce(+,{}[\\spad{C}[\\spad{i}]*x**i for \\spad{i} in 1..5])")) (|find| (((|Union| |#2| "failed") (|Mapping| (|Boolean|) |#2|) $) "\\spad{find(p,{}u)} returns the first \\spad{x} in \\spad{u} such that \\axiom{\\spad{p}(\\spad{x})} is \\spad{true},{} and \"failed\" otherwise.")) (|construct| (($ (|List| |#2|)) "\\axiom{construct(\\spad{x},{}\\spad{y},{}...,{}\\spad{z})} returns the collection of elements \\axiom{\\spad{x},{}\\spad{y},{}...,{}\\spad{z}} ordered as given. Equivalently written as \\axiom{[\\spad{x},{}\\spad{y},{}...,{}\\spad{z}]\\$\\spad{D}},{} where \\spad{D} is the domain. \\spad{D} may be omitted for those of type List."))) 
 NIL 
-((|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (QUOTE (-1090))) (|HasAttribute| |#1| (QUOTE -4519))) 
+((|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (QUOTE (-1090))) (|HasAttribute| |#1| (QUOTE -4521))) 
 (-154 S) 
 ((|constructor| (NIL "A collection is a homogeneous aggregate which can built from list of members. The operation used to build the aggregate is generically named \\spadfun{construct}. However,{} each collection provides its own special function with the same name as the data type,{} except with an initial lower case letter,{} \\spadignore{e.g.} \\spadfun{list} for \\spadtype{List},{} \\spadfun{flexibleArray} for \\spadtype{FlexibleArray},{} and so on.")) (|removeDuplicates| (($ $) "\\spad{removeDuplicates(u)} returns a copy of \\spad{u} with all duplicates removed.")) (|select| (($ (|Mapping| (|Boolean|) |#1|) $) "\\spad{select(p,{}u)} returns a copy of \\spad{u} containing only those elements such \\axiom{\\spad{p}(\\spad{x})} is \\spad{true}. Note that \\axiom{select(\\spad{p},{}\\spad{u}) \\spad{==} [\\spad{x} for \\spad{x} in \\spad{u} | \\spad{p}(\\spad{x})]}.")) (|remove| (($ |#1| $) "\\spad{remove(x,{}u)} returns a copy of \\spad{u} with all elements \\axiom{\\spad{y} = \\spad{x}} removed. Note that \\axiom{remove(\\spad{y},{}\\spad{c}) \\spad{==} [\\spad{x} for \\spad{x} in \\spad{c} | \\spad{x} \\spad{^=} \\spad{y}]}.") (($ (|Mapping| (|Boolean|) |#1|) $) "\\spad{remove(p,{}u)} returns a copy of \\spad{u} removing all elements \\spad{x} such that \\axiom{\\spad{p}(\\spad{x})} is \\spad{true}. Note that \\axiom{remove(\\spad{p},{}\\spad{u}) \\spad{==} [\\spad{x} for \\spad{x} in \\spad{u} | not \\spad{p}(\\spad{x})]}.")) (|reduce| ((|#1| (|Mapping| |#1| |#1| |#1|) $ |#1| |#1|) "\\spad{reduce(f,{}u,{}x,{}z)} reduces the binary operation \\spad{f} across \\spad{u},{} stopping when an \"absorbing element\" \\spad{z} is encountered. As for \\axiom{reduce(\\spad{f},{}\\spad{u},{}\\spad{x})},{} \\spad{x} is the identity operation of \\spad{f}. Same as \\axiom{reduce(\\spad{f},{}\\spad{u},{}\\spad{x})} when \\spad{u} contains no element \\spad{z}. Thus the third argument \\spad{x} is returned when \\spad{u} is empty.") ((|#1| (|Mapping| |#1| |#1| |#1|) $ |#1|) "\\spad{reduce(f,{}u,{}x)} reduces the binary operation \\spad{f} across \\spad{u},{} where \\spad{x} is the identity operation of \\spad{f}. Same as \\axiom{reduce(\\spad{f},{}\\spad{u})} if \\spad{u} has 2 or more elements. Returns \\axiom{\\spad{f}(\\spad{x},{}\\spad{y})} if \\spad{u} has one element \\spad{y},{} \\spad{x} if \\spad{u} is empty. For example,{} \\axiom{reduce(+,{}\\spad{u},{}0)} returns the sum of the elements of \\spad{u}.") ((|#1| (|Mapping| |#1| |#1| |#1|) $) "\\indented{1}{reduce(\\spad{f},{}\\spad{u}) reduces the binary operation \\spad{f} across \\spad{u}. For example,{}} \\indented{1}{if \\spad{u} is \\axiom{[\\spad{x},{}\\spad{y},{}...,{}\\spad{z}]} then \\axiom{reduce(\\spad{f},{}\\spad{u})}} \\indented{1}{returns \\axiom{\\spad{f}(..\\spad{f}(\\spad{f}(\\spad{x},{}\\spad{y}),{}...),{}\\spad{z})}.} \\indented{1}{Note that if \\spad{u} has one element \\spad{x},{} \\axiom{reduce(\\spad{f},{}\\spad{u})} returns \\spad{x}.} \\indented{1}{Error: if \\spad{u} is empty.} \\blankline \\spad{C} )clear all \\spad{X} reduce(+,{}[\\spad{C}[\\spad{i}]*x**i for \\spad{i} in 1..5])")) (|find| (((|Union| |#1| "failed") (|Mapping| (|Boolean|) |#1|) $) "\\spad{find(p,{}u)} returns the first \\spad{x} in \\spad{u} such that \\axiom{\\spad{p}(\\spad{x})} is \\spad{true},{} and \"failed\" otherwise.")) (|construct| (($ (|List| |#1|)) "\\axiom{construct(\\spad{x},{}\\spad{y},{}...,{}\\spad{z})} returns the collection of elements \\axiom{\\spad{x},{}\\spad{y},{}...,{}\\spad{z}} ordered as given. Equivalently written as \\axiom{[\\spad{x},{}\\spad{y},{}...,{}\\spad{z}]\\$\\spad{D}},{} where \\spad{D} is the domain. \\spad{D} may be omitted for those of type List."))) 
 ((-3973 . T)) 
 NIL 
 (-155 |n| K Q) 
 ((|constructor| (NIL "CliffordAlgebra(\\spad{n},{} \\spad{K},{} \\spad{Q}) defines a vector space of dimension \\spad{2**n} over \\spad{K},{} given a quadratic form \\spad{Q} on \\spad{K**n}. \\blankline If \\spad{e[i]},{} \\spad{1<=i<=n} is a basis for \\spad{K**n} then 1,{} \\spad{e[i]} (\\spad{1<=i<=n}),{} \\spad{e[i1]*e[i2]} (\\spad{1<=i1<i2<=n}),{}...,{}\\spad{e[1]*e[2]*..*e[n]} is a basis for the Clifford Algebra. \\blankline The algebra is defined by the relations\\spad{\\br} \\tab{5}\\spad{e[i]*e[j] = -e[j]*e[i]} (\\spad{i \\~~= j}),{}\\spad{\\br} \\tab{5}\\spad{e[i]*e[i] = Q(e[i])} \\blankline Examples of Clifford Algebras are: gaussians,{} quaternions,{} exterior algebras and spin algebras.")) (|recip| (((|Union| $ "failed") $) "\\spad{recip(x)} computes the multiplicative inverse of \\spad{x} or \"failed\" if \\spad{x} is not invertible.")) (|coefficient| ((|#2| $ (|List| (|PositiveInteger|))) "\\spad{coefficient(x,{}[i1,{}i2,{}...,{}iN])} extracts the coefficient of \\spad{e(i1)*e(i2)*...*e(iN)} in \\spad{x}.")) (|monomial| (($ |#2| (|List| (|PositiveInteger|))) "\\spad{monomial(c,{}[i1,{}i2,{}...,{}iN])} produces the value given by \\spad{c*e(i1)*e(i2)*...*e(iN)}.")) (|e| (($ (|PositiveInteger|)) "\\spad{e(n)} produces the appropriate unit element."))) 
-((-4514 . T) (-4513 . T) (-4516 . T)) 
+((-4516 . T) (-4515 . T) (-4518 . T)) 
 NIL 
 (-156) 
 ((|constructor| (NIL "Automatic clipping for 2-dimensional plots The purpose of this package is to provide reasonable plots of functions with singularities.")) (|clipWithRanges| (((|Record| (|:| |brans| (|List| (|List| (|Point| (|DoubleFloat|))))) (|:| |xValues| (|Segment| (|DoubleFloat|))) (|:| |yValues| (|Segment| (|DoubleFloat|)))) (|List| (|List| (|Point| (|DoubleFloat|)))) (|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|)) "\\spad{clipWithRanges(pointLists,{}xMin,{}xMax,{}yMin,{}yMax)} performs clipping on a list of lists of points,{} \\spad{pointLists}. Clipping is done within the specified ranges of \\spad{xMin},{} \\spad{xMax} and \\spad{yMin},{} \\spad{yMax}. This function is used internally by the \\fakeAxiomFun{iClipParametric} subroutine in this package.")) (|clipParametric| (((|Record| (|:| |brans| (|List| (|List| (|Point| (|DoubleFloat|))))) (|:| |xValues| (|Segment| (|DoubleFloat|))) (|:| |yValues| (|Segment| (|DoubleFloat|)))) (|Plot|) (|Fraction| (|Integer|)) (|Fraction| (|Integer|))) "\\spad{clipParametric(p,{}frac,{}sc)} performs two-dimensional clipping on a plot,{} \\spad{p},{} from the domain \\spadtype{Plot} for the parametric curve \\spad{x = f(t)},{} \\spad{y = g(t)}; the fraction parameter is specified by \\spad{frac} and the scale parameter is specified by \\spad{sc} for use in the \\fakeAxiomFun{iClipParametric} subroutine,{} which is called by this function.") (((|Record| (|:| |brans| (|List| (|List| (|Point| (|DoubleFloat|))))) (|:| |xValues| (|Segment| (|DoubleFloat|))) (|:| |yValues| (|Segment| (|DoubleFloat|)))) (|Plot|)) "\\spad{clipParametric(p)} performs two-dimensional clipping on a plot,{} \\spad{p},{} from the domain \\spadtype{Plot} for the parametric curve \\spad{x = f(t)},{} \\spad{y = g(t)}; the default parameters \\spad{1/2} for the fraction and \\spad{5/1} for the scale are used in the \\fakeAxiomFun{iClipParametric} subroutine,{} which is called by this function.")) (|clip| (((|Record| (|:| |brans| (|List| (|List| (|Point| (|DoubleFloat|))))) (|:| |xValues| (|Segment| (|DoubleFloat|))) (|:| |yValues| (|Segment| (|DoubleFloat|)))) (|List| (|List| (|Point| (|DoubleFloat|))))) "\\spad{clip(ll)} performs two-dimensional clipping on a list of lists of points,{} \\spad{ll}; the default parameters \\spad{1/2} for the fraction and \\spad{5/1} for the scale are used in the \\fakeAxiomFun{iClipParametric} subroutine,{} which is called by this function.") (((|Record| (|:| |brans| (|List| (|List| (|Point| (|DoubleFloat|))))) (|:| |xValues| (|Segment| (|DoubleFloat|))) (|:| |yValues| (|Segment| (|DoubleFloat|)))) (|List| (|Point| (|DoubleFloat|)))) "\\spad{clip(l)} performs two-dimensional clipping on a curve \\spad{l},{} which is a list of points; the default parameters \\spad{1/2} for the fraction and \\spad{5/1} for the scale are used in the \\fakeAxiomFun{iClipParametric} subroutine,{} which is called by this function.") (((|Record| (|:| |brans| (|List| (|List| (|Point| (|DoubleFloat|))))) (|:| |xValues| (|Segment| (|DoubleFloat|))) (|:| |yValues| (|Segment| (|DoubleFloat|)))) (|Plot|) (|Fraction| (|Integer|)) (|Fraction| (|Integer|))) "\\spad{clip(p,{}frac,{}sc)} performs two-dimensional clipping on a plot,{} \\spad{p},{} from the domain \\spadtype{Plot} for the graph of one variable \\spad{y = f(x)}; the fraction parameter is specified by \\spad{frac} and the scale parameter is specified by \\spad{sc} for use in the \\spadfun{clip} function.") (((|Record| (|:| |brans| (|List| (|List| (|Point| (|DoubleFloat|))))) (|:| |xValues| (|Segment| (|DoubleFloat|))) (|:| |yValues| (|Segment| (|DoubleFloat|)))) (|Plot|)) "\\spad{clip(p)} performs two-dimensional clipping on a plot,{} \\spad{p},{} from the domain \\spadtype{Plot} for the graph of one variable,{} \\spad{y = f(x)}; the default parameters \\spad{1/4} for the fraction and \\spad{5/1} for the scale are used in the \\spadfun{clip} function."))) 
@@ -591,10 +591,10 @@ NIL
 (-165 S R) 
 ((|constructor| (NIL "This category represents the extension of a ring by a square root of \\spad{-1}.")) (|rationalIfCan| (((|Union| (|Fraction| (|Integer|)) "failed") $) "\\spad{rationalIfCan(x)} returns \\spad{x} as a rational number,{} or \"failed\" if \\spad{x} is not a rational number.")) (|rational| (((|Fraction| (|Integer|)) $) "\\spad{rational(x)} returns \\spad{x} as a rational number. Error: if \\spad{x} is not a rational number.")) (|rational?| (((|Boolean|) $) "\\spad{rational?(x)} tests if \\spad{x} is a rational number.")) (|polarCoordinates| (((|Record| (|:| |r| |#2|) (|:| |phi| |#2|)) $) "\\spad{polarCoordinates(x)} returns (\\spad{r},{} phi) such that \\spad{x} = \\spad{r} * exp(\\%\\spad{i} * phi).")) (|argument| ((|#2| $) "\\spad{argument(x)} returns the angle made by (0,{}1) and (0,{}\\spad{x}).")) (|abs| (($ $) "\\spad{abs(x)} returns the absolute value of \\spad{x} = sqrt(norm(\\spad{x})).")) (|exquo| (((|Union| $ "failed") $ |#2|) "\\spad{exquo(x,{} r)} returns the exact quotient of \\spad{x} by \\spad{r},{} or \"failed\" if \\spad{r} does not divide \\spad{x} exactly.")) (|norm| ((|#2| $) "\\spad{norm(x)} returns \\spad{x} * conjugate(\\spad{x})")) (|real| ((|#2| $) "\\spad{real(x)} returns real part of \\spad{x}.")) (|imag| ((|#2| $) "\\spad{imag(x)} returns imaginary part of \\spad{x}.")) (|conjugate| (($ $) "\\spad{conjugate(x + \\%i y)} returns \\spad{x} - \\%\\spad{i} \\spad{y}.")) (|imaginary| (($) "\\spad{imaginary()} = sqrt(\\spad{-1}) = \\%\\spad{i}.")) (|complex| (($ |#2| |#2|) "\\spad{complex(x,{}y)} constructs \\spad{x} + \\%i*y.") ((|attribute|) "indicates that \\% has sqrt(\\spad{-1})"))) 
 NIL 
-((|HasCategory| |#2| (QUOTE (-904))) (|HasCategory| |#2| (QUOTE (-550))) (|HasCategory| |#2| (QUOTE (-1002))) (|HasCategory| |#2| (QUOTE (-1181))) (|HasCategory| |#2| (QUOTE (-1056))) (|HasCategory| |#2| (QUOTE (-1021))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (QUOTE (-365))) (|HasAttribute| |#2| (QUOTE -4515)) (|HasAttribute| |#2| (QUOTE -4518)) (|HasCategory| |#2| (QUOTE (-301))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-842)))) 
+((|HasCategory| |#2| (QUOTE (-904))) (|HasCategory| |#2| (QUOTE (-550))) (|HasCategory| |#2| (QUOTE (-1002))) (|HasCategory| |#2| (QUOTE (-1181))) (|HasCategory| |#2| (QUOTE (-1056))) (|HasCategory| |#2| (QUOTE (-1021))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (QUOTE (-365))) (|HasAttribute| |#2| (QUOTE -4517)) (|HasAttribute| |#2| (QUOTE -4520)) (|HasCategory| |#2| (QUOTE (-301))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-842)))) 
 (-166 R) 
 ((|constructor| (NIL "This category represents the extension of a ring by a square root of \\spad{-1}.")) (|rationalIfCan| (((|Union| (|Fraction| (|Integer|)) "failed") $) "\\spad{rationalIfCan(x)} returns \\spad{x} as a rational number,{} or \"failed\" if \\spad{x} is not a rational number.")) (|rational| (((|Fraction| (|Integer|)) $) "\\spad{rational(x)} returns \\spad{x} as a rational number. Error: if \\spad{x} is not a rational number.")) (|rational?| (((|Boolean|) $) "\\spad{rational?(x)} tests if \\spad{x} is a rational number.")) (|polarCoordinates| (((|Record| (|:| |r| |#1|) (|:| |phi| |#1|)) $) "\\spad{polarCoordinates(x)} returns (\\spad{r},{} phi) such that \\spad{x} = \\spad{r} * exp(\\%\\spad{i} * phi).")) (|argument| ((|#1| $) "\\spad{argument(x)} returns the angle made by (0,{}1) and (0,{}\\spad{x}).")) (|abs| (($ $) "\\spad{abs(x)} returns the absolute value of \\spad{x} = sqrt(norm(\\spad{x})).")) (|exquo| (((|Union| $ "failed") $ |#1|) "\\spad{exquo(x,{} r)} returns the exact quotient of \\spad{x} by \\spad{r},{} or \"failed\" if \\spad{r} does not divide \\spad{x} exactly.")) (|norm| ((|#1| $) "\\spad{norm(x)} returns \\spad{x} * conjugate(\\spad{x})")) (|real| ((|#1| $) "\\spad{real(x)} returns real part of \\spad{x}.")) (|imag| ((|#1| $) "\\spad{imag(x)} returns imaginary part of \\spad{x}.")) (|conjugate| (($ $) "\\spad{conjugate(x + \\%i y)} returns \\spad{x} - \\%\\spad{i} \\spad{y}.")) (|imaginary| (($) "\\spad{imaginary()} = sqrt(\\spad{-1}) = \\%\\spad{i}.")) (|complex| (($ |#1| |#1|) "\\spad{complex(x,{}y)} constructs \\spad{x} + \\%i*y.") ((|attribute|) "indicates that \\% has sqrt(\\spad{-1})"))) 
-((-4512 -2198 (|has| |#1| (-558)) (-12 (|has| |#1| (-301)) (|has| |#1| (-904)))) (-4517 |has| |#1| (-365)) (-4511 |has| |#1| (-365)) (-4515 |has| |#1| (-6 -4515)) (-4518 |has| |#1| (-6 -4518)) (-4003 . T) (-3973 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4514 -2199 (|has| |#1| (-558)) (-12 (|has| |#1| (-301)) (|has| |#1| (-904)))) (-4519 |has| |#1| (-365)) (-4513 |has| |#1| (-365)) (-4517 |has| |#1| (-6 -4517)) (-4520 |has| |#1| (-6 -4520)) (-4005 . T) (-3973 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-167 RR PR) 
 ((|constructor| (NIL "This package has no description")) (|factor| (((|Factored| |#2|) |#2|) "\\spad{factor(p)} factorizes the polynomial \\spad{p} with complex coefficients."))) 
@@ -606,8 +606,8 @@ NIL
 NIL 
 (-169 R) 
 ((|constructor| (NIL "\\spadtype{Complex(R)} creates the domain of elements of the form \\spad{a + b * i} where \\spad{a} and \\spad{b} come from the ring \\spad{R},{} and \\spad{i} is a new element such that \\spad{i**2 = -1}."))) 
-((-4512 -2198 (|has| |#1| (-558)) (-12 (|has| |#1| (-301)) (|has| |#1| (-904)))) (-4517 |has| |#1| (-365)) (-4511 |has| |#1| (-365)) (-4515 |has| |#1| (-6 -4515)) (-4518 |has| |#1| (-6 -4518)) (-4003 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-365))) (-2198 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-350)))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (-2198 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-558)))) (|HasCategory| |#1| (QUOTE (-1181))) (-12 (|HasCategory| |#1| (QUOTE (-1002))) (|HasCategory| |#1| (QUOTE (-1181)))) (|HasCategory| |#1| (QUOTE (-1021))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#1| (LIST (QUOTE -523) (QUOTE (-1161)) (|devaluate| |#1|))) (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (LIST (QUOTE -281) (|devaluate| |#1|) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-823))) (|HasCategory| |#1| (QUOTE (-1056))) (-12 (|HasCategory| |#1| (QUOTE (-1056))) (|HasCategory| |#1| (QUOTE (-1181)))) (|HasCategory| |#1| (QUOTE (-550))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-365)))) (|HasCategory| |#1| (QUOTE (-301))) (-2198 (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-558)))) (-2198 (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-350)))) (|HasCategory| |#1| (QUOTE (-904))) (|HasCategory| |#1| (QUOTE (-225))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -281) (|devaluate| |#1|) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -523) (QUOTE (-1161)) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-350)))) (|HasCategory| |#1| (QUOTE (-225))) (-12 (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-370)))) (-12 (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-558)))) (-12 (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-823)))) (-12 (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-1021)))) (-12 (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-1181))))) (-12 (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-904)))) (-2198 (-12 (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-365))) (-12 (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-904))))) (-2198 (-12 (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-904)))) (-12 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-904)))) (-12 (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-904))))) (-2198 (-12 (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-365)))) (-2198 (-12 (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-558)))) (|HasAttribute| |#1| (QUOTE -4515)) (|HasAttribute| |#1| (QUOTE -4518)) (-12 (|HasCategory| |#1| (QUOTE (-225))) (|HasCategory| |#1| (QUOTE (-365)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-365)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-148)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-350))))) 
+((-4514 -2199 (|has| |#1| (-558)) (-12 (|has| |#1| (-301)) (|has| |#1| (-904)))) (-4519 |has| |#1| (-365)) (-4513 |has| |#1| (-365)) (-4517 |has| |#1| (-6 -4517)) (-4520 |has| |#1| (-6 -4520)) (-4005 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-365))) (-2199 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-350)))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (-2199 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-558)))) (|HasCategory| |#1| (QUOTE (-1181))) (-12 (|HasCategory| |#1| (QUOTE (-1002))) (|HasCategory| |#1| (QUOTE (-1181)))) (|HasCategory| |#1| (QUOTE (-1021))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#1| (LIST (QUOTE -523) (QUOTE (-1161)) (|devaluate| |#1|))) (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (LIST (QUOTE -281) (|devaluate| |#1|) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-823))) (|HasCategory| |#1| (QUOTE (-1056))) (-12 (|HasCategory| |#1| (QUOTE (-1056))) (|HasCategory| |#1| (QUOTE (-1181)))) (|HasCategory| |#1| (QUOTE (-550))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-365)))) (|HasCategory| |#1| (QUOTE (-301))) (-2199 (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-558)))) (-2199 (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-350)))) (|HasCategory| |#1| (QUOTE (-904))) (|HasCategory| |#1| (QUOTE (-225))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -281) (|devaluate| |#1|) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -523) (QUOTE (-1161)) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-350)))) (|HasCategory| |#1| (QUOTE (-225))) (-12 (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-350)))) (-12 (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-370)))) (-12 (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-558)))) (-12 (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-823)))) (-12 (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-1021)))) (-12 (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-1181))))) (-12 (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-904)))) (-2199 (-12 (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-365))) (-12 (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-904))))) (-2199 (-12 (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-904)))) (-12 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-904)))) (-12 (|HasCategory| |#1| (QUOTE (-350))) (|HasCategory| |#1| (QUOTE (-904))))) (-2199 (-12 (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-365)))) (-2199 (-12 (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-558)))) (|HasAttribute| |#1| (QUOTE -4517)) (|HasAttribute| |#1| (QUOTE -4520)) (-12 (|HasCategory| |#1| (QUOTE (-225))) (|HasCategory| |#1| (QUOTE (-365)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-365)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-148)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-350))))) 
 (-170 R S CS) 
 ((|constructor| (NIL "This package supports converting complex expressions to patterns")) (|convert| (((|Pattern| |#1|) |#3|) "\\spad{convert(cs)} converts the complex expression \\spad{cs} to a pattern"))) 
 NIL 
@@ -618,11 +618,11 @@ NIL
 NIL 
 (-172) 
 ((|constructor| (NIL "The category of commutative rings with unity,{} \\spadignore{i.e.} rings where \\spadop{*} is commutative,{} and which have a multiplicative identity element.")) (|commutative| ((|attribute| "*") "multiplication is commutative."))) 
-(((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+(((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-173 R) 
 ((|constructor| (NIL "\\spadtype{ContinuedFraction} implements general continued fractions. This version is not restricted to simple,{} finite fractions and uses the \\spadtype{Stream} as a representation. The arithmetic functions assume that the approximants alternate below/above the convergence point. This is enforced by ensuring the partial numerators and partial denominators are greater than 0 in the Euclidean domain view of \\spad{R} (\\spadignore{i.e.} \\spad{sizeLess?(0,{} x)}).")) (|complete| (($ $) "\\spad{complete(x)} causes all entries in \\spadvar{\\spad{x}} to be computed. Normally entries are only computed as needed. If \\spadvar{\\spad{x}} is an infinite continued fraction,{} a user-initiated interrupt is necessary to stop the computation.")) (|extend| (($ $ (|Integer|)) "\\spad{extend(x,{}n)} causes the first \\spadvar{\\spad{n}} entries in the continued fraction \\spadvar{\\spad{x}} to be computed. Normally entries are only computed as needed.")) (|denominators| (((|Stream| |#1|) $) "\\spad{denominators(x)} returns the stream of denominators of the approximants of the continued fraction \\spadvar{\\spad{x}}. If the continued fraction is finite,{} then the stream will be finite.")) (|numerators| (((|Stream| |#1|) $) "\\spad{numerators(x)} returns the stream of numerators of the approximants of the continued fraction \\spadvar{\\spad{x}}. If the continued fraction is finite,{} then the stream will be finite.")) (|convergents| (((|Stream| (|Fraction| |#1|)) $) "\\spad{convergents(x)} returns the stream of the convergents of the continued fraction \\spadvar{\\spad{x}}. If the continued fraction is finite,{} then the stream will be finite.")) (|approximants| (((|Stream| (|Fraction| |#1|)) $) "\\spad{approximants(x)} returns the stream of approximants of the continued fraction \\spadvar{\\spad{x}}. If the continued fraction is finite,{} then the stream will be infinite and periodic with period 1.")) (|reducedForm| (($ $) "\\spad{reducedForm(x)} puts the continued fraction \\spadvar{\\spad{x}} in reduced form,{} \\spadignore{i.e.} the function returns an equivalent continued fraction of the form \\spad{continuedFraction(b0,{}[1,{}1,{}1,{}...],{}[b1,{}b2,{}b3,{}...])}.")) (|wholePart| ((|#1| $) "\\spad{wholePart(x)} extracts the whole part of \\spadvar{\\spad{x}}. That is,{} if \\spad{x = continuedFraction(b0,{} [a1,{}a2,{}a3,{}...],{} [b1,{}b2,{}b3,{}...])},{} then \\spad{wholePart(x) = b0}.")) (|partialQuotients| (((|Stream| |#1|) $) "\\spad{partialQuotients(x)} extracts the partial quotients in \\spadvar{\\spad{x}}. That is,{} if \\spad{x = continuedFraction(b0,{} [a1,{}a2,{}a3,{}...],{} [b1,{}b2,{}b3,{}...])},{} then \\spad{partialQuotients(x) = [b0,{}b1,{}b2,{}b3,{}...]}.")) (|partialDenominators| (((|Stream| |#1|) $) "\\spad{partialDenominators(x)} extracts the denominators in \\spadvar{\\spad{x}}. That is,{} if \\spad{x = continuedFraction(b0,{} [a1,{}a2,{}a3,{}...],{} [b1,{}b2,{}b3,{}...])},{} then \\spad{partialDenominators(x) = [b1,{}b2,{}b3,{}...]}.")) (|partialNumerators| (((|Stream| |#1|) $) "\\spad{partialNumerators(x)} extracts the numerators in \\spadvar{\\spad{x}}. That is,{} if \\spad{x = continuedFraction(b0,{} [a1,{}a2,{}a3,{}...],{} [b1,{}b2,{}b3,{}...])},{} then \\spad{partialNumerators(x) = [a1,{}a2,{}a3,{}...]}.")) (|reducedContinuedFraction| (($ |#1| (|Stream| |#1|)) "\\spad{reducedContinuedFraction(b0,{}b)} constructs a continued fraction in the following way: if \\spad{b = [b1,{}b2,{}...]} then the result is the continued fraction \\spad{b0 + 1/(b1 + 1/(b2 + ...))}. That is,{} the result is the same as \\spad{continuedFraction(b0,{}[1,{}1,{}1,{}...],{}[b1,{}b2,{}b3,{}...])}.")) (|continuedFraction| (($ |#1| (|Stream| |#1|) (|Stream| |#1|)) "\\spad{continuedFraction(b0,{}a,{}b)} constructs a continued fraction in the following way: if \\spad{a = [a1,{}a2,{}...]} and \\spad{b = [b1,{}b2,{}...]} then the result is the continued fraction \\spad{b0 + a1/(b1 + a2/(b2 + ...))}.") (($ (|Fraction| |#1|)) "\\spad{continuedFraction(r)} converts the fraction \\spadvar{\\spad{r}} with components of type \\spad{R} to a continued fraction over \\spad{R}."))) 
-(((-4521 "*") . T) (-4512 . T) (-4517 . T) (-4511 . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+(((-4523 "*") . T) (-4514 . T) (-4519 . T) (-4513 . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-174 R) 
 ((|constructor| (NIL "CoordinateSystems provides coordinate transformation functions for plotting. Functions in this package return conversion functions which take points expressed in other coordinate systems and return points with the corresponding Cartesian coordinates.")) (|conical| (((|Mapping| (|Point| |#1|) (|Point| |#1|)) |#1| |#1|) "\\spad{conical(a,{}b)} transforms from conical coordinates to Cartesian coordinates: \\spad{conical(a,{}b)} is a function which will map the point \\spad{(lambda,{}mu,{}nu)} to \\spad{x = lambda*mu*nu/(a*b)},{} \\spad{y = lambda/a*sqrt((mu**2-a**2)*(nu**2-a**2)/(a**2-b**2))},{} \\spad{z = lambda/b*sqrt((mu**2-b**2)*(nu**2-b**2)/(b**2-a**2))}.")) (|toroidal| (((|Mapping| (|Point| |#1|) (|Point| |#1|)) |#1|) "\\spad{toroidal(a)} transforms from toroidal coordinates to Cartesian coordinates: \\spad{toroidal(a)} is a function which will map the point \\spad{(u,{}v,{}phi)} to \\spad{x = a*sinh(v)*cos(phi)/(cosh(v)-cos(u))},{} \\spad{y = a*sinh(v)*sin(phi)/(cosh(v)-cos(u))},{} \\spad{z = a*sin(u)/(cosh(v)-cos(u))}.")) (|bipolarCylindrical| (((|Mapping| (|Point| |#1|) (|Point| |#1|)) |#1|) "\\spad{bipolarCylindrical(a)} transforms from bipolar cylindrical coordinates to Cartesian coordinates: \\spad{bipolarCylindrical(a)} is a function which will map the point \\spad{(u,{}v,{}z)} to \\spad{x = a*sinh(v)/(cosh(v)-cos(u))},{} \\spad{y = a*sin(u)/(cosh(v)-cos(u))},{} \\spad{z}.")) (|bipolar| (((|Mapping| (|Point| |#1|) (|Point| |#1|)) |#1|) "\\spad{bipolar(a)} transforms from bipolar coordinates to Cartesian coordinates: \\spad{bipolar(a)} is a function which will map the point \\spad{(u,{}v)} to \\spad{x = a*sinh(v)/(cosh(v)-cos(u))},{} \\spad{y = a*sin(u)/(cosh(v)-cos(u))}.")) (|oblateSpheroidal| (((|Mapping| (|Point| |#1|) (|Point| |#1|)) |#1|) "\\spad{oblateSpheroidal(a)} transforms from oblate spheroidal coordinates to Cartesian coordinates: \\spad{oblateSpheroidal(a)} is a function which will map the point \\spad{(\\spad{xi},{}eta,{}phi)} to \\spad{x = a*sinh(\\spad{xi})*sin(eta)*cos(phi)},{} \\spad{y = a*sinh(\\spad{xi})*sin(eta)*sin(phi)},{} \\spad{z = a*cosh(\\spad{xi})*cos(eta)}.")) (|prolateSpheroidal| (((|Mapping| (|Point| |#1|) (|Point| |#1|)) |#1|) "\\spad{prolateSpheroidal(a)} transforms from prolate spheroidal coordinates to Cartesian coordinates: \\spad{prolateSpheroidal(a)} is a function which will map the point \\spad{(\\spad{xi},{}eta,{}phi)} to \\spad{x = a*sinh(\\spad{xi})*sin(eta)*cos(phi)},{} \\spad{y = a*sinh(\\spad{xi})*sin(eta)*sin(phi)},{} \\spad{z = a*cosh(\\spad{xi})*cos(eta)}.")) (|ellipticCylindrical| (((|Mapping| (|Point| |#1|) (|Point| |#1|)) |#1|) "\\spad{ellipticCylindrical(a)} transforms from elliptic cylindrical coordinates to Cartesian coordinates: \\spad{ellipticCylindrical(a)} is a function which will map the point \\spad{(u,{}v,{}z)} to \\spad{x = a*cosh(u)*cos(v)},{} \\spad{y = a*sinh(u)*sin(v)},{} \\spad{z}.")) (|elliptic| (((|Mapping| (|Point| |#1|) (|Point| |#1|)) |#1|) "\\spad{elliptic(a)} transforms from elliptic coordinates to Cartesian coordinates: \\spad{elliptic(a)} is a function which will map the point \\spad{(u,{}v)} to \\spad{x = a*cosh(u)*cos(v)},{} \\spad{y = a*sinh(u)*sin(v)}.")) (|paraboloidal| (((|Point| |#1|) (|Point| |#1|)) "\\spad{paraboloidal(pt)} transforms \\spad{pt} from paraboloidal coordinates to Cartesian coordinates: the function produced will map the point \\spad{(u,{}v,{}phi)} to \\spad{x = u*v*cos(phi)},{} \\spad{y = u*v*sin(phi)},{} \\spad{z = 1/2 * (u**2 - v**2)}.")) (|parabolicCylindrical| (((|Point| |#1|) (|Point| |#1|)) "\\spad{parabolicCylindrical(pt)} transforms \\spad{pt} from parabolic cylindrical coordinates to Cartesian coordinates: the function produced will map the point \\spad{(u,{}v,{}z)} to \\spad{x = 1/2*(u**2 - v**2)},{} \\spad{y = u*v},{} \\spad{z}.")) (|parabolic| (((|Point| |#1|) (|Point| |#1|)) "\\spad{parabolic(pt)} transforms \\spad{pt} from parabolic coordinates to Cartesian coordinates: the function produced will map the point \\spad{(u,{}v)} to \\spad{x = 1/2*(u**2 - v**2)},{} \\spad{y = u*v}.")) (|spherical| (((|Point| |#1|) (|Point| |#1|)) "\\spad{spherical(pt)} transforms \\spad{pt} from spherical coordinates to Cartesian coordinates: the function produced will map the point \\spad{(r,{}theta,{}phi)} to \\spad{x = r*sin(phi)*cos(theta)},{} \\spad{y = r*sin(phi)*sin(theta)},{} \\spad{z = r*cos(phi)}.")) (|cylindrical| (((|Point| |#1|) (|Point| |#1|)) "\\spad{cylindrical(pt)} transforms \\spad{pt} from polar coordinates to Cartesian coordinates: the function produced will map the point \\spad{(r,{}theta,{}z)} to \\spad{x = r * cos(theta)},{} \\spad{y = r * sin(theta)},{} \\spad{z}.")) (|polar| (((|Point| |#1|) (|Point| |#1|)) "\\spad{polar(pt)} transforms \\spad{pt} from polar coordinates to Cartesian coordinates: the function produced will map the point \\spad{(r,{}theta)} to \\spad{x = r * cos(theta)} ,{} \\spad{y = r * sin(theta)}.")) (|cartesian| (((|Point| |#1|) (|Point| |#1|)) "\\spad{cartesian(pt)} returns the Cartesian coordinates of point \\spad{pt}."))) 
@@ -762,8 +762,8 @@ NIL
 NIL 
 (-208) 
 ((|constructor| (NIL "This domain allows rational numbers to be presented as repeating decimal expansions.")) (|decimal| (($ (|Fraction| (|Integer|))) "\\spad{decimal(r)} converts a rational number to a decimal expansion.")) (|fractionPart| (((|Fraction| (|Integer|)) $) "\\spad{fractionPart(d)} returns the fractional part of a decimal expansion.")) (|coerce| (((|RadixExpansion| 10) $) "\\spad{coerce(d)} converts a decimal expansion to a radix expansion with base 10.") (((|Fraction| (|Integer|)) $) "\\spad{coerce(d)} converts a decimal expansion to a rational number."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| (-568) (QUOTE (-904))) (|HasCategory| (-568) (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| (-568) (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-150))) (|HasCategory| (-568) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-568) (QUOTE (-1021))) (|HasCategory| (-568) (QUOTE (-815))) (|HasCategory| (-568) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| (-568) (QUOTE (-1136))) (|HasCategory| (-568) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| (-568) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| (-568) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| (-568) (QUOTE (-225))) (|HasCategory| (-568) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-568) (LIST (QUOTE -523) (QUOTE (-1161)) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -303) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -281) (QUOTE (-568)) (QUOTE (-568)))) (|HasCategory| (-568) (QUOTE (-301))) (|HasCategory| (-568) (QUOTE (-550))) (|HasCategory| (-568) (QUOTE (-842))) (-2198 (|HasCategory| (-568) (QUOTE (-815))) (|HasCategory| (-568) (QUOTE (-842)))) (|HasCategory| (-568) (LIST (QUOTE -630) (QUOTE (-568)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-904)))) (|HasCategory| (-568) (QUOTE (-148))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| (-568) (QUOTE (-904))) (|HasCategory| (-568) (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| (-568) (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-150))) (|HasCategory| (-568) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-568) (QUOTE (-1021))) (|HasCategory| (-568) (QUOTE (-815))) (|HasCategory| (-568) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| (-568) (QUOTE (-1136))) (|HasCategory| (-568) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| (-568) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| (-568) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| (-568) (QUOTE (-225))) (|HasCategory| (-568) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-568) (LIST (QUOTE -523) (QUOTE (-1161)) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -303) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -281) (QUOTE (-568)) (QUOTE (-568)))) (|HasCategory| (-568) (QUOTE (-301))) (|HasCategory| (-568) (QUOTE (-550))) (|HasCategory| (-568) (QUOTE (-842))) (-2199 (|HasCategory| (-568) (QUOTE (-815))) (|HasCategory| (-568) (QUOTE (-842)))) (|HasCategory| (-568) (LIST (QUOTE -630) (QUOTE (-568)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-904)))) (|HasCategory| (-568) (QUOTE (-148))))) 
 (-209 R -1478) 
 ((|constructor| (NIL "\\spadtype{ElementaryFunctionDefiniteIntegration} provides functions to compute definite integrals of elementary functions.")) (|innerint| (((|Union| (|:| |f1| (|OrderedCompletion| |#2|)) (|:| |f2| (|List| (|OrderedCompletion| |#2|))) (|:| |fail| "failed") (|:| |pole| "potentialPole")) |#2| (|Symbol|) (|OrderedCompletion| |#2|) (|OrderedCompletion| |#2|) (|Boolean|)) "\\spad{innerint(f,{} x,{} a,{} b,{} ignore?)} should be local but conditional")) (|integrate| (((|Union| (|:| |f1| (|OrderedCompletion| |#2|)) (|:| |f2| (|List| (|OrderedCompletion| |#2|))) (|:| |fail| "failed") (|:| |pole| "potentialPole")) |#2| (|SegmentBinding| (|OrderedCompletion| |#2|)) (|String|)) "\\spad{integrate(f,{} x = a..b,{} \"noPole\")} returns the integral of \\spad{f(x)dx} from a to \\spad{b}. If it is not possible to check whether \\spad{f} has a pole for \\spad{x} between a and \\spad{b} (because of parameters),{} then this function will assume that \\spad{f} has no such pole. Error: if \\spad{f} has a pole for \\spad{x} between a and \\spad{b} or if the last argument is not \"noPole\".") (((|Union| (|:| |f1| (|OrderedCompletion| |#2|)) (|:| |f2| (|List| (|OrderedCompletion| |#2|))) (|:| |fail| "failed") (|:| |pole| "potentialPole")) |#2| (|SegmentBinding| (|OrderedCompletion| |#2|))) "\\spad{integrate(f,{} x = a..b)} returns the integral of \\spad{f(x)dx} from a to \\spad{b}. Error: if \\spad{f} has a pole for \\spad{x} between a and \\spad{b}."))) 
 NIL 
@@ -778,11 +778,11 @@ NIL
 NIL 
 (-212 S) 
 ((|constructor| (NIL "Linked list implementation of a Dequeue")) (|member?| (((|Boolean|) |#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} member?(3,{}a)")) (|members| (((|List| |#1|) $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} members a")) (|parts| (((|List| |#1|) $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} parts a")) (|#| (((|NonNegativeInteger|) $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} \\#a")) (|count| (((|NonNegativeInteger|) |#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} count(4,{}a)") (((|NonNegativeInteger|) (|Mapping| (|Boolean|) |#1|) $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} count(\\spad{x+}->(\\spad{x>2}),{}a)")) (|any?| (((|Boolean|) (|Mapping| (|Boolean|) |#1|) $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} any?(\\spad{x+}->(\\spad{x=4}),{}a)")) (|every?| (((|Boolean|) (|Mapping| (|Boolean|) |#1|) $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} every?(\\spad{x+}->(\\spad{x=4}),{}a)")) (~= (((|Boolean|) $ $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} b:=copy a \\spad{X} (a~=b)")) (= (((|Boolean|) $ $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} b:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} (a=b)@Boolean")) (|coerce| (((|OutputForm|) $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} coerce a")) (|hash| (((|SingleInteger|) $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} hash a")) (|latex| (((|String|) $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} latex a")) (|map!| (($ (|Mapping| |#1| |#1|) $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} map!(\\spad{x+}-\\spad{>x+10},{}a) \\spad{X} a")) (|top!| ((|#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} top! a \\spad{X} a")) (|reverse!| (($ $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} reverse! a \\spad{X} a")) (|push!| ((|#1| |#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} push! a \\spad{X} a")) (|pop!| ((|#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} pop! a \\spad{X} a")) (|insertTop!| ((|#1| |#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} insertTop! a \\spad{X} a")) (|insertBottom!| ((|#1| |#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} insertBottom! a \\spad{X} a")) (|extractTop!| ((|#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} extractTop! a \\spad{X} a")) (|extractBottom!| ((|#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} extractBottom! a \\spad{X} a")) (|bottom!| ((|#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} bottom! a \\spad{X} a")) (|top| ((|#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} top a")) (|height| (((|NonNegativeInteger|) $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} height a")) (|depth| (((|NonNegativeInteger|) $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} depth a")) (|map| (($ (|Mapping| |#1| |#1|) $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} map(\\spad{x+}-\\spad{>x+10},{}a) \\spad{X} a")) (|eq?| (((|Boolean|) $ $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} b:=copy a \\spad{X} eq?(a,{}\\spad{b})")) (|copy| (($ $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} copy a")) (|sample| (($) "\\blankline \\spad{X} sample()\\$Dequeue(INT)")) (|empty| (($) "\\blankline \\spad{X} b:=empty()\\$(Dequeue INT)")) (|empty?| (((|Boolean|) $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} empty? a")) (|bag| (($ (|List| |#1|)) "\\blankline \\spad{X} bag([1,{}2,{}3,{}4,{}5])\\$Dequeue(INT)")) (|size?| (((|Boolean|) $ (|NonNegativeInteger|)) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} size?(a,{}5)")) (|more?| (((|Boolean|) $ (|NonNegativeInteger|)) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} more?(a,{}9)")) (|less?| (((|Boolean|) $ (|NonNegativeInteger|)) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} less?(a,{}9)")) (|length| (((|NonNegativeInteger|) $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} length a")) (|rotate!| (($ $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} rotate! a")) (|back| ((|#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} back a")) (|front| ((|#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} front a")) (|inspect| ((|#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} inspect a")) (|insert!| (($ |#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} insert! (8,{}a) \\spad{X} a")) (|enqueue!| ((|#1| |#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} enqueue! (9,{}a) \\spad{X} a")) (|extract!| ((|#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} extract! a \\spad{X} a")) (|dequeue!| ((|#1| $) "\\blankline \\spad{X} a:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5] \\spad{X} dequeue! a \\spad{X} a")) (|dequeue| (($) "\\blankline \\spad{X} a:Dequeue INT:= dequeue ()") (($ (|List| |#1|)) "\\indented{1}{dequeue([\\spad{x},{}\\spad{y},{}...,{}\\spad{z}]) creates a dequeue with first (top or front)} \\indented{1}{element \\spad{x},{} second element \\spad{y},{}...,{}and last (bottom or back) element \\spad{z}.} \\blankline \\spad{E} g:Dequeue INT:= dequeue [1,{}2,{}3,{}4,{}5]"))) 
-((-4519 . T) (-4520 . T)) 
+((-4521 . T) (-4522 . T)) 
 ((|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090))))) 
 (-213 |CoefRing| |listIndVar|) 
 ((|constructor| (NIL "The deRham complex of Euclidean space,{} that is,{} the class of differential forms of arbitary degree over a coefficient ring. See Flanders,{} Harley,{} Differential Forms,{} With Applications to the Physical Sciences,{} New York,{} Academic Press,{} 1963.")) (|exteriorDifferential| (($ $) "\\spad{exteriorDifferential(df)} returns the exterior derivative (gradient,{} curl,{} divergence,{} ...) of the differential form \\spad{df}.")) (|totalDifferential| (($ (|Expression| |#1|)) "\\spad{totalDifferential(x)} returns the total differential (gradient) form for element \\spad{x}.")) (|map| (($ (|Mapping| (|Expression| |#1|) (|Expression| |#1|)) $) "\\spad{map(f,{}df)} replaces each coefficient \\spad{x} of differential form \\spad{df} by \\spad{f(x)}.")) (|degree| (((|Integer|) $) "\\spad{degree(df)} returns the homogeneous degree of differential form \\spad{df}.")) (|retractable?| (((|Boolean|) $) "\\spad{retractable?(df)} tests if differential form \\spad{df} is a 0-form,{} \\spadignore{i.e.} if degree(\\spad{df}) = 0.")) (|homogeneous?| (((|Boolean|) $) "\\spad{homogeneous?(df)} tests if all of the terms of differential form \\spad{df} have the same degree.")) (|generator| (($ (|NonNegativeInteger|)) "\\spad{generator(n)} returns the \\spad{n}th basis term for a differential form.")) (|coefficient| (((|Expression| |#1|) $ $) "\\spad{coefficient(df,{}u)},{} where \\spad{df} is a differential form,{} returns the coefficient of \\spad{df} containing the basis term \\spad{u} if such a term exists,{} and 0 otherwise.")) (|reductum| (($ $) "\\spad{reductum(df)},{} where \\spad{df} is a differential form,{} returns \\spad{df} minus the leading term of \\spad{df} if \\spad{df} has two or more terms,{} and 0 otherwise.")) (|leadingBasisTerm| (($ $) "\\spad{leadingBasisTerm(df)} returns the leading basis term of differential form \\spad{df}.")) (|leadingCoefficient| (((|Expression| |#1|) $) "\\spad{leadingCoefficient(df)} returns the leading coefficient of differential form \\spad{df}."))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-214 R -1478) 
 ((|constructor| (NIL "\\spadtype{DefiniteIntegrationTools} provides common tools used by the definite integration of both rational and elementary functions.")) (|checkForZero| (((|Union| (|Boolean|) "failed") (|SparseUnivariatePolynomial| |#2|) (|OrderedCompletion| |#2|) (|OrderedCompletion| |#2|) (|Boolean|)) "\\spad{checkForZero(p,{} a,{} b,{} incl?)} is \\spad{true} if \\spad{p} has a zero between a and \\spad{b},{} \\spad{false} otherwise,{} \"failed\" if this cannot be determined. Check for a and \\spad{b} inclusive if incl? is \\spad{true},{} exclusive otherwise.") (((|Union| (|Boolean|) "failed") (|Polynomial| |#1|) (|Symbol|) (|OrderedCompletion| |#2|) (|OrderedCompletion| |#2|) (|Boolean|)) "\\spad{checkForZero(p,{} x,{} a,{} b,{} incl?)} is \\spad{true} if \\spad{p} has a zero for \\spad{x} between a and \\spad{b},{} \\spad{false} otherwise,{} \"failed\" if this cannot be determined. Check for a and \\spad{b} inclusive if incl? is \\spad{true},{} exclusive otherwise.")) (|computeInt| (((|Union| (|OrderedCompletion| |#2|) "failed") (|Kernel| |#2|) |#2| (|OrderedCompletion| |#2|) (|OrderedCompletion| |#2|) (|Boolean|)) "\\spad{computeInt(x,{} g,{} a,{} b,{} eval?)} returns the integral of \\spad{f} for \\spad{x} between a and \\spad{b},{} assuming that \\spad{g} is an indefinite integral of \\spad{f} and \\spad{f} has no pole between a and \\spad{b}. If \\spad{eval?} is \\spad{true},{} then \\spad{g} can be evaluated safely at \\spad{a} and \\spad{b},{} provided that they are finite values. Otherwise,{} limits must be computed.")) (|ignore?| (((|Boolean|) (|String|)) "\\spad{ignore?(s)} is \\spad{true} if \\spad{s} is the string that tells the integrator to assume that the function has no pole in the integration interval."))) 
@@ -790,31 +790,31 @@ NIL
 NIL 
 (-215) 
 ((|constructor| (NIL "\\spadtype{DoubleFloat} is intended to make accessible hardware floating point arithmetic in Axiom,{} either native double precision,{} or IEEE. On most machines,{} there will be hardware support for the arithmetic operations: \\spad{++} +,{} *,{} / and possibly also the sqrt operation. The operations exp,{} log,{} sin,{} cos,{} atan are normally coded in software based on minimax polynomial/rational approximations. \\blankline Some general comments about the accuracy of the operations: the operations +,{} *,{} / and sqrt are expected to be fully accurate. The operations exp,{} log,{} sin,{} cos and atan are not expected to be fully accurate. In particular,{} sin and cos will lose all precision for large arguments. \\blankline The Float domain provides an alternative to the DoubleFloat domain. It provides an arbitrary precision model of floating point arithmetic. This means that accuracy problems like those above are eliminated by increasing the working precision where necessary. \\spadtype{Float} provides some special functions such as erf,{} the error function in addition to the elementary functions. The disadvantage of Float is that it is much more expensive than small floats when the latter can be used.")) (|integerDecode| (((|List| (|Integer|)) $) "\\indented{1}{integerDecode(\\spad{x}) returns the multiple values of the\\space{2}common} \\indented{1}{lisp integer-decode-float function.} \\indented{1}{See Steele,{} ISBN 0-13-152414-3 \\spad{p354}. This function can be used} \\indented{1}{to ensure that the results are bit-exact and do not depend on} \\indented{1}{the binary-to-decimal conversions.} \\blankline \\spad{X} a:DFLOAT:=-1.0/3.0 \\spad{X} integerDecode a")) (|machineFraction| (((|Fraction| (|Integer|)) $) "\\indented{1}{machineFraction(\\spad{x}) returns a bit-exact fraction of the machine} \\indented{1}{floating point number using the common lisp integer-decode-float} \\indented{1}{function. See Steele,{} ISBN 0-13-152414-3 \\spad{p354}} \\indented{1}{This function can be used to print results which do not depend} \\indented{1}{on binary-to-decimal conversions} \\blankline \\spad{X} a:DFLOAT:=-1.0/3.0 \\spad{X} machineFraction a")) (|rationalApproximation| (((|Fraction| (|Integer|)) $ (|NonNegativeInteger|) (|NonNegativeInteger|)) "\\spad{rationalApproximation(f,{} n,{} b)} computes a rational approximation \\spad{r} to \\spad{f} with relative error \\spad{< b**(-n)} (that is,{} \\spad{|(r-f)/f| < b**(-n)}).") (((|Fraction| (|Integer|)) $ (|NonNegativeInteger|)) "\\spad{rationalApproximation(f,{} n)} computes a rational approximation \\spad{r} to \\spad{f} with relative error \\spad{< 10**(-n)}.")) (|doubleFloatFormat| (((|String|) (|String|)) "change the output format for doublefloats using lisp format strings")) (|Beta| (($ $ $) "\\spad{Beta(x,{}y)} is \\spad{Gamma(x) * Gamma(y)/Gamma(x+y)}.")) (|Gamma| (($ $) "\\spad{Gamma(x)} is the Euler Gamma function.")) (|atan| (($ $ $) "\\spad{atan(x,{}y)} computes the arc tangent from \\spad{x} with phase \\spad{y}.")) (|log10| (($ $) "\\spad{log10(x)} computes the logarithm with base 10 for \\spad{x}.")) (|log2| (($ $) "\\spad{log2(x)} computes the logarithm with base 2 for \\spad{x}.")) (|hash| (((|Integer|) $) "\\spad{hash(x)} returns the hash key for \\spad{x}")) (|exp1| (($) "\\spad{exp1()} returns the natural log base \\spad{2.718281828...}.")) (** (($ $ $) "\\spad{x ** y} returns the \\spad{y}th power of \\spad{x} (equal to \\spad{exp(y log x)}).")) (/ (($ $ (|Integer|)) "\\spad{x / i} computes the division from \\spad{x} by an integer \\spad{i}."))) 
-((-3996 . T) (-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-3999 . T) (-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-216) 
 ((|constructor| (NIL "This is a low-level domain which implements matrices (two dimensional arrays) of double precision floating point numbers. Indexing is 0 based,{} there is no bound checking (unless provided by lower level).")) (|qnew| (($ (|Integer|) (|Integer|)) "\\indented{1}{qnew(\\spad{n},{} \\spad{m}) creates a new uninitialized \\spad{n} by \\spad{m} matrix.} \\blankline \\spad{X} t1:DFMAT:=qnew(3,{}4)"))) 
-((-4519 . T) (-4520 . T)) 
-((|HasCategory| (-215) (QUOTE (-1090))) (-12 (|HasCategory| (-215) (LIST (QUOTE -303) (QUOTE (-215)))) (|HasCategory| (-215) (QUOTE (-1090)))) (|HasCategory| (-215) (QUOTE (-301))) (|HasCategory| (-215) (QUOTE (-558))) (|HasAttribute| (-215) (QUOTE (-4521 "*"))) (|HasCategory| (-215) (QUOTE (-172))) (|HasCategory| (-215) (QUOTE (-365)))) 
+((-4521 . T) (-4522 . T)) 
+((|HasCategory| (-215) (QUOTE (-1090))) (-12 (|HasCategory| (-215) (LIST (QUOTE -303) (QUOTE (-215)))) (|HasCategory| (-215) (QUOTE (-1090)))) (|HasCategory| (-215) (QUOTE (-301))) (|HasCategory| (-215) (QUOTE (-558))) (|HasAttribute| (-215) (QUOTE (-4523 "*"))) (|HasCategory| (-215) (QUOTE (-172))) (|HasCategory| (-215) (QUOTE (-365)))) 
 (-217) 
 ((|constructor| (NIL "This package provides special functions for double precision real and complex floating point.")) (|hypergeometric0F1| (((|Complex| (|DoubleFloat|)) (|Complex| (|DoubleFloat|)) (|Complex| (|DoubleFloat|))) "\\spad{hypergeometric0F1(c,{}z)} is the hypergeometric function \\spad{0F1(; c; z)}.") (((|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|)) "\\spad{hypergeometric0F1(c,{}z)} is the hypergeometric function \\spad{0F1(; c; z)}.")) (|airyBi| (((|Complex| (|DoubleFloat|)) (|Complex| (|DoubleFloat|))) "\\spad{airyBi(x)} is the Airy function \\spad{\\spad{Bi}(x)}. This function satisfies the differential equation: \\indented{2}{\\spad{\\spad{Bi}''(x) - x * \\spad{Bi}(x) = 0}.}") (((|DoubleFloat|) (|DoubleFloat|)) "\\spad{airyBi(x)} is the Airy function \\spad{\\spad{Bi}(x)}. This function satisfies the differential equation: \\indented{2}{\\spad{\\spad{Bi}''(x) - x * \\spad{Bi}(x) = 0}.}")) (|airyAi| (((|DoubleFloat|) (|DoubleFloat|)) "\\spad{airyAi(x)} is the Airy function \\spad{\\spad{Ai}(x)}. This function satisfies the differential equation: \\indented{2}{\\spad{\\spad{Ai}''(x) - x * \\spad{Ai}(x) = 0}.}") (((|Complex| (|DoubleFloat|)) (|Complex| (|DoubleFloat|))) "\\spad{airyAi(x)} is the Airy function \\spad{\\spad{Ai}(x)}. This function satisfies the differential equation: \\indented{2}{\\spad{\\spad{Ai}''(x) - x * \\spad{Ai}(x) = 0}.}")) (|besselK| (((|Complex| (|DoubleFloat|)) (|Complex| (|DoubleFloat|)) (|Complex| (|DoubleFloat|))) "\\spad{besselK(v,{}x)} is the modified Bessel function of the second kind,{} \\spad{K(v,{}x)}. This function satisfies the differential equation: \\indented{2}{\\spad{x^2 w''(x) + x w'(x) - (x^2+v^2)w(x) = 0}.} Note that the default implementation uses the relation \\indented{2}{\\spad{K(v,{}x) = \\%pi/2*(I(-v,{}x) - I(v,{}x))/sin(v*\\%\\spad{pi})}} so is not valid for integer values of \\spad{v}.") (((|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|)) "\\spad{besselK(v,{}x)} is the modified Bessel function of the second kind,{} \\spad{K(v,{}x)}. This function satisfies the differential equation: \\indented{2}{\\spad{x^2 w''(x) + x w'(x) - (x^2+v^2)w(x) = 0}.} Note that the default implementation uses the relation \\indented{2}{\\spad{K(v,{}x) = \\%pi/2*(I(-v,{}x) - I(v,{}x))/sin(v*\\%\\spad{pi})}.} so is not valid for integer values of \\spad{v}.")) (|besselI| (((|Complex| (|DoubleFloat|)) (|Complex| (|DoubleFloat|)) (|Complex| (|DoubleFloat|))) "\\spad{besselI(v,{}x)} is the modified Bessel function of the first kind,{} \\spad{I(v,{}x)}. This function satisfies the differential equation: \\indented{2}{\\spad{x^2 w''(x) + x w'(x) - (x^2+v^2)w(x) = 0}.}") (((|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|)) "\\spad{besselI(v,{}x)} is the modified Bessel function of the first kind,{} \\spad{I(v,{}x)}. This function satisfies the differential equation: \\indented{2}{\\spad{x^2 w''(x) + x w'(x) - (x^2+v^2)w(x) = 0}.}")) (|besselY| (((|Complex| (|DoubleFloat|)) (|Complex| (|DoubleFloat|)) (|Complex| (|DoubleFloat|))) "\\spad{besselY(v,{}x)} is the Bessel function of the second kind,{} \\spad{Y(v,{}x)}. This function satisfies the differential equation: \\indented{2}{\\spad{x^2 w''(x) + x w'(x) + (x^2-v^2)w(x) = 0}.} Note that the default implementation uses the relation \\indented{2}{\\spad{Y(v,{}x) = (J(v,{}x) cos(v*\\%\\spad{pi}) - J(-v,{}x))/sin(v*\\%\\spad{pi})}} so is not valid for integer values of \\spad{v}.") (((|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|)) "\\spad{besselY(v,{}x)} is the Bessel function of the second kind,{} \\spad{Y(v,{}x)}. This function satisfies the differential equation: \\indented{2}{\\spad{x^2 w''(x) + x w'(x) + (x^2-v^2)w(x) = 0}.} Note that the default implementation uses the relation \\indented{2}{\\spad{Y(v,{}x) = (J(v,{}x) cos(v*\\%\\spad{pi}) - J(-v,{}x))/sin(v*\\%\\spad{pi})}} so is not valid for integer values of \\spad{v}.")) (|besselJ| (((|Complex| (|DoubleFloat|)) (|Complex| (|DoubleFloat|)) (|Complex| (|DoubleFloat|))) "\\spad{besselJ(v,{}x)} is the Bessel function of the first kind,{} \\spad{J(v,{}x)}. This function satisfies the differential equation: \\indented{2}{\\spad{x^2 w''(x) + x w'(x) + (x^2-v^2)w(x) = 0}.}") (((|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|)) "\\spad{besselJ(v,{}x)} is the Bessel function of the first kind,{} \\spad{J(v,{}x)}. This function satisfies the differential equation: \\indented{2}{\\spad{x^2 w''(x) + x w'(x) + (x^2-v^2)w(x) = 0}.}")) (|polygamma| (((|Complex| (|DoubleFloat|)) (|NonNegativeInteger|) (|Complex| (|DoubleFloat|))) "\\spad{polygamma(n,{} x)} is the \\spad{n}-th derivative of \\spad{digamma(x)}.") (((|DoubleFloat|) (|NonNegativeInteger|) (|DoubleFloat|)) "\\spad{polygamma(n,{} x)} is the \\spad{n}-th derivative of \\spad{digamma(x)}.")) (|digamma| (((|Complex| (|DoubleFloat|)) (|Complex| (|DoubleFloat|))) "\\spad{digamma(x)} is the function,{} \\spad{psi(x)},{} defined by \\indented{2}{\\spad{psi(x) = Gamma'(x)/Gamma(x)}.}") (((|DoubleFloat|) (|DoubleFloat|)) "\\spad{digamma(x)} is the function,{} \\spad{psi(x)},{} defined by \\indented{2}{\\spad{psi(x) = Gamma'(x)/Gamma(x)}.}")) (|logGamma| (((|Complex| (|DoubleFloat|)) (|Complex| (|DoubleFloat|))) "\\spad{logGamma(x)} is the natural log of \\spad{Gamma(x)}. This can often be computed even if \\spad{Gamma(x)} cannot.") (((|DoubleFloat|) (|DoubleFloat|)) "\\spad{logGamma(x)} is the natural log of \\spad{Gamma(x)}. This can often be computed even if \\spad{Gamma(x)} cannot.")) (|Beta| (((|Complex| (|DoubleFloat|)) (|Complex| (|DoubleFloat|)) (|Complex| (|DoubleFloat|))) "\\spad{Beta(x,{} y)} is the Euler beta function,{} \\spad{B(x,{}y)},{} defined by \\indented{2}{\\spad{Beta(x,{}y) = integrate(t^(x-1)*(1-t)^(y-1),{} t=0..1)}.} This is related to \\spad{Gamma(x)} by \\indented{2}{\\spad{Beta(x,{}y) = Gamma(x)*Gamma(y) / Gamma(x + y)}.}") (((|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|)) "\\spad{Beta(x,{} y)} is the Euler beta function,{} \\spad{B(x,{}y)},{} defined by \\indented{2}{\\spad{Beta(x,{}y) = integrate(t^(x-1)*(1-t)^(y-1),{} t=0..1)}.} This is related to \\spad{Gamma(x)} by \\indented{2}{\\spad{Beta(x,{}y) = Gamma(x)*Gamma(y) / Gamma(x + y)}.}")) (|Ei6| (((|OnePointCompletion| (|DoubleFloat|)) (|OnePointCompletion| (|DoubleFloat|))) "\\spad{Ei6} is the first approximation of \\spad{Ei} where the result is \\spad{x*}\\%e^-x*Ei(\\spad{x}) from 32 to infinity (preserves digits)")) (|Ei5| (((|OnePointCompletion| (|DoubleFloat|)) (|OnePointCompletion| (|DoubleFloat|))) "\\spad{Ei5} is the first approximation of \\spad{Ei} where the result is \\spad{x*}\\%e^-x*Ei(\\spad{x}) from 12 to 32 (preserves digits)")) (|Ei4| (((|OnePointCompletion| (|DoubleFloat|)) (|OnePointCompletion| (|DoubleFloat|))) "\\spad{Ei4} is the first approximation of \\spad{Ei} where the result is \\spad{x*}\\%e^-x*Ei(\\spad{x}) from 4 to 12 (preserves digits)")) (|Ei3| (((|OnePointCompletion| (|DoubleFloat|)) (|OnePointCompletion| (|DoubleFloat|))) "\\spad{Ei3} is the first approximation of \\spad{Ei} where the result is (\\spad{Ei}(\\spad{x})-log \\spad{|x|} - gamma)\\spad{/x} from \\spad{-4} to 4 (preserves digits)")) (|Ei2| (((|OnePointCompletion| (|DoubleFloat|)) (|OnePointCompletion| (|DoubleFloat|))) "\\spad{Ei2} is the first approximation of \\spad{Ei} where the result is \\spad{x*}\\%e^-x*Ei(\\spad{x}) from \\spad{-10} to \\spad{-4} (preserves digits)")) (|Ei1| (((|OnePointCompletion| (|DoubleFloat|)) (|OnePointCompletion| (|DoubleFloat|))) "\\spad{Ei1} is the first approximation of \\spad{Ei} where the result is \\spad{x*}\\%e^-x*Ei(\\spad{x}) from -infinity to \\spad{-10} (preserves digits)")) (|Ei| (((|OnePointCompletion| (|DoubleFloat|)) (|OnePointCompletion| (|DoubleFloat|))) "\\spad{Ei} is the Exponential Integral function This is computed using a 6 part piecewise approximation. DoubleFloat can only preserve about 16 digits but the Chebyshev approximation used can give 30 digits.")) (|En| (((|OnePointCompletion| (|DoubleFloat|)) (|Integer|) (|DoubleFloat|)) "\\spad{En(n,{}x)} is the \\spad{n}th Exponential Integral Function")) (E1 (((|OnePointCompletion| (|DoubleFloat|)) (|DoubleFloat|)) "\\spad{E1(x)} is the Exponential Integral function The current implementation is a piecewise approximation involving one poly from \\spad{-4}..4 and a second poly for \\spad{x} > 4")) (|Gamma| (((|Complex| (|DoubleFloat|)) (|Complex| (|DoubleFloat|))) "\\spad{Gamma(x)} is the Euler gamma function,{} \\spad{Gamma(x)},{} defined by \\indented{2}{\\spad{Gamma(x) = integrate(t^(x-1)*exp(-t),{} t=0..\\%infinity)}.}") (((|DoubleFloat|) (|DoubleFloat|)) "\\spad{Gamma(x)} is the Euler gamma function,{} \\spad{Gamma(x)},{} defined by \\indented{2}{\\spad{Gamma(x) = integrate(t^(x-1)*exp(-t),{} t=0..\\%infinity)}.}"))) 
 NIL 
 NIL 
 (-218) 
 ((|constructor| (NIL "This is a low-level domain which implements vectors (one dimensional arrays) of double precision floating point numbers. Indexing is 0 based,{} there is no bound checking (unless provided by lower level).")) (|qnew| (($ (|Integer|)) "\\indented{1}{qnew(\\spad{n}) creates a new uninitialized vector of length \\spad{n}.} \\blankline \\spad{X} t1:DFVEC:=qnew(7)"))) 
-((-4520 . T) (-4519 . T)) 
-((|HasCategory| (-215) (QUOTE (-1090))) (|HasCategory| (-215) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-215) (QUOTE (-842))) (-2198 (|HasCategory| (-215) (QUOTE (-842))) (|HasCategory| (-215) (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (|HasCategory| (-215) (QUOTE (-25))) (|HasCategory| (-215) (QUOTE (-23))) (|HasCategory| (-215) (QUOTE (-21))) (|HasCategory| (-215) (QUOTE (-716))) (|HasCategory| (-215) (QUOTE (-1047))) (-12 (|HasCategory| (-215) (QUOTE (-1002))) (|HasCategory| (-215) (QUOTE (-1047)))) (-12 (|HasCategory| (-215) (LIST (QUOTE -303) (QUOTE (-215)))) (|HasCategory| (-215) (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| (-215) (LIST (QUOTE -303) (QUOTE (-215)))) (|HasCategory| (-215) (QUOTE (-842)))) (-12 (|HasCategory| (-215) (LIST (QUOTE -303) (QUOTE (-215)))) (|HasCategory| (-215) (QUOTE (-1090)))))) 
+((-4522 . T) (-4521 . T)) 
+((|HasCategory| (-215) (QUOTE (-1090))) (|HasCategory| (-215) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-215) (QUOTE (-842))) (-2199 (|HasCategory| (-215) (QUOTE (-842))) (|HasCategory| (-215) (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (|HasCategory| (-215) (QUOTE (-25))) (|HasCategory| (-215) (QUOTE (-23))) (|HasCategory| (-215) (QUOTE (-21))) (|HasCategory| (-215) (QUOTE (-716))) (|HasCategory| (-215) (QUOTE (-1047))) (-12 (|HasCategory| (-215) (QUOTE (-1002))) (|HasCategory| (-215) (QUOTE (-1047)))) (-12 (|HasCategory| (-215) (LIST (QUOTE -303) (QUOTE (-215)))) (|HasCategory| (-215) (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| (-215) (LIST (QUOTE -303) (QUOTE (-215)))) (|HasCategory| (-215) (QUOTE (-842)))) (-12 (|HasCategory| (-215) (LIST (QUOTE -303) (QUOTE (-215)))) (|HasCategory| (-215) (QUOTE (-1090)))))) 
 (-219 R) 
 ((|constructor| (NIL "4x4 Matrices for coordinate transformations\\spad{\\br} This package contains functions to create 4x4 matrices useful for rotating and transforming coordinate systems. These matrices are useful for graphics and robotics. (Reference: Robot Manipulators Richard Paul MIT Press 1981) \\blankline A Denavit-Hartenberg Matrix is a 4x4 Matrix of the form:\\spad{\\br} \\tab{5}\\spad{nx ox ax px}\\spad{\\br} \\tab{5}\\spad{ny oy ay py}\\spad{\\br} \\tab{5}\\spad{nz oz az pz}\\spad{\\br} \\tab{5}\\spad{0 0 0 1}\\spad{\\br} (\\spad{n},{} \\spad{o},{} and a are the direction cosines)")) (|translate| (($ |#1| |#1| |#1|) "\\spad{translate(x,{}y,{}z)} returns a dhmatrix for translation by \\spad{x},{} \\spad{y},{} and \\spad{z}")) (|scale| (($ |#1| |#1| |#1|) "\\spad{scale(sx,{}sy,{}sz)} returns a dhmatrix for scaling in the \\spad{x},{} \\spad{y} and \\spad{z} directions")) (|rotatez| (($ |#1|) "\\spad{rotatez(r)} returns a dhmatrix for rotation about axis \\spad{z} for \\spad{r} degrees")) (|rotatey| (($ |#1|) "\\spad{rotatey(r)} returns a dhmatrix for rotation about axis \\spad{y} for \\spad{r} degrees")) (|rotatex| (($ |#1|) "\\spad{rotatex(r)} returns a dhmatrix for rotation about axis \\spad{x} for \\spad{r} degrees")) (|identity| (($) "\\spad{identity()} create the identity dhmatrix")) (* (((|Point| |#1|) $ (|Point| |#1|)) "\\spad{t*p} applies the dhmatrix \\spad{t} to point \\spad{p}"))) 
-((-4519 . T) (-4520 . T)) 
-((|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-558))) (|HasAttribute| |#1| (QUOTE (-4521 "*"))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365)))) 
+((-4521 . T) (-4522 . T)) 
+((|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-558))) (|HasAttribute| |#1| (QUOTE (-4523 "*"))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365)))) 
 (-220 A S) 
 ((|constructor| (NIL "A dictionary is an aggregate in which entries can be inserted,{} searched for and removed. Duplicates are thrown away on insertion. This category models the usual notion of dictionary which involves large amounts of data where copying is impractical. Principal operations are thus destructive (non-copying) ones."))) 
 NIL 
 NIL 
 (-221 S) 
 ((|constructor| (NIL "A dictionary is an aggregate in which entries can be inserted,{} searched for and removed. Duplicates are thrown away on insertion. This category models the usual notion of dictionary which involves large amounts of data where copying is impractical. Principal operations are thus destructive (non-copying) ones."))) 
-((-4520 . T) (-3973 . T)) 
+((-4522 . T) (-3973 . T)) 
 NIL 
 (-222 S R) 
 ((|constructor| (NIL "Differential extensions of a ring \\spad{R}. Given a differentiation on \\spad{R},{} extend it to a differentiation on \\%.")) (D (($ $ (|Mapping| |#2| |#2|) (|NonNegativeInteger|)) "\\spad{D(x,{} deriv,{} n)} differentiate \\spad{x} \\spad{n} times using a derivation which extends \\spad{deriv} on \\spad{R}.") (($ $ (|Mapping| |#2| |#2|)) "\\spad{D(x,{} deriv)} differentiates \\spad{x} extending the derivation deriv on \\spad{R}.")) (|differentiate| (($ $ (|Mapping| |#2| |#2|) (|NonNegativeInteger|)) "\\spad{differentiate(x,{} deriv,{} n)} differentiate \\spad{x} \\spad{n} times using a derivation which extends \\spad{deriv} on \\spad{R}.") (($ $ (|Mapping| |#2| |#2|)) "\\spad{differentiate(x,{} deriv)} differentiates \\spad{x} extending the derivation deriv on \\spad{R}."))) 
@@ -822,7 +822,7 @@ NIL
 ((|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-225)))) 
 (-223 R) 
 ((|constructor| (NIL "Differential extensions of a ring \\spad{R}. Given a differentiation on \\spad{R},{} extend it to a differentiation on \\%.")) (D (($ $ (|Mapping| |#1| |#1|) (|NonNegativeInteger|)) "\\spad{D(x,{} deriv,{} n)} differentiate \\spad{x} \\spad{n} times using a derivation which extends \\spad{deriv} on \\spad{R}.") (($ $ (|Mapping| |#1| |#1|)) "\\spad{D(x,{} deriv)} differentiates \\spad{x} extending the derivation deriv on \\spad{R}.")) (|differentiate| (($ $ (|Mapping| |#1| |#1|) (|NonNegativeInteger|)) "\\spad{differentiate(x,{} deriv,{} n)} differentiate \\spad{x} \\spad{n} times using a derivation which extends \\spad{deriv} on \\spad{R}.") (($ $ (|Mapping| |#1| |#1|)) "\\spad{differentiate(x,{} deriv)} differentiates \\spad{x} extending the derivation deriv on \\spad{R}."))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-224 S) 
 ((|constructor| (NIL "An ordinary differential ring,{} that is,{} a ring with an operation \\spadfun{differentiate}. \\blankline Axioms\\spad{\\br} \\tab{5}\\spad{differentiate(x+y) = differentiate(x)+differentiate(y)}\\spad{\\br} \\tab{5}\\spad{differentiate(x*y) = x*differentiate(y) + differentiate(x)*y}")) (D (($ $ (|NonNegativeInteger|)) "\\spad{D(x,{} n)} returns the \\spad{n}-th derivative of \\spad{x}.") (($ $) "\\spad{D(x)} returns the derivative of \\spad{x}. This function is a simple differential operator where no variable needs to be specified.")) (|differentiate| (($ $ (|NonNegativeInteger|)) "\\spad{differentiate(x,{} n)} returns the \\spad{n}-th derivative of \\spad{x}.") (($ $) "\\spad{differentiate(x)} returns the derivative of \\spad{x}. This function is a simple differential operator where no variable needs to be specified."))) 
@@ -830,39 +830,39 @@ NIL
 NIL 
 (-225) 
 ((|constructor| (NIL "An ordinary differential ring,{} that is,{} a ring with an operation \\spadfun{differentiate}. \\blankline Axioms\\spad{\\br} \\tab{5}\\spad{differentiate(x+y) = differentiate(x)+differentiate(y)}\\spad{\\br} \\tab{5}\\spad{differentiate(x*y) = x*differentiate(y) + differentiate(x)*y}")) (D (($ $ (|NonNegativeInteger|)) "\\spad{D(x,{} n)} returns the \\spad{n}-th derivative of \\spad{x}.") (($ $) "\\spad{D(x)} returns the derivative of \\spad{x}. This function is a simple differential operator where no variable needs to be specified.")) (|differentiate| (($ $ (|NonNegativeInteger|)) "\\spad{differentiate(x,{} n)} returns the \\spad{n}-th derivative of \\spad{x}.") (($ $) "\\spad{differentiate(x)} returns the derivative of \\spad{x}. This function is a simple differential operator where no variable needs to be specified."))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-226 A S) 
 ((|constructor| (NIL "This category is a collection of operations common to both categories \\spadtype{Dictionary} and \\spadtype{MultiDictionary}")) (|select!| (($ (|Mapping| (|Boolean|) |#2|) $) "\\spad{select!(p,{}d)} destructively changes dictionary \\spad{d} by removing all entries \\spad{x} such that \\axiom{\\spad{p}(\\spad{x})} is not \\spad{true}.")) (|remove!| (($ (|Mapping| (|Boolean|) |#2|) $) "\\spad{remove!(p,{}d)} destructively changes dictionary \\spad{d} by removeing all entries \\spad{x} such that \\axiom{\\spad{p}(\\spad{x})} is \\spad{true}.") (($ |#2| $) "\\spad{remove!(x,{}d)} destructively changes dictionary \\spad{d} by removing all entries \\spad{y} such that \\axiom{\\spad{y} = \\spad{x}}.")) (|dictionary| (($ (|List| |#2|)) "\\spad{dictionary([x,{}y,{}...,{}z])} creates a dictionary consisting of entries \\axiom{\\spad{x},{}\\spad{y},{}...,{}\\spad{z}}.") (($) "\\spad{dictionary()}\\$\\spad{D} creates an empty dictionary of type \\spad{D}."))) 
 NIL 
-((|HasAttribute| |#1| (QUOTE -4519))) 
+((|HasAttribute| |#1| (QUOTE -4521))) 
 (-227 S) 
 ((|constructor| (NIL "This category is a collection of operations common to both categories \\spadtype{Dictionary} and \\spadtype{MultiDictionary}")) (|select!| (($ (|Mapping| (|Boolean|) |#1|) $) "\\spad{select!(p,{}d)} destructively changes dictionary \\spad{d} by removing all entries \\spad{x} such that \\axiom{\\spad{p}(\\spad{x})} is not \\spad{true}.")) (|remove!| (($ (|Mapping| (|Boolean|) |#1|) $) "\\spad{remove!(p,{}d)} destructively changes dictionary \\spad{d} by removeing all entries \\spad{x} such that \\axiom{\\spad{p}(\\spad{x})} is \\spad{true}.") (($ |#1| $) "\\spad{remove!(x,{}d)} destructively changes dictionary \\spad{d} by removing all entries \\spad{y} such that \\axiom{\\spad{y} = \\spad{x}}.")) (|dictionary| (($ (|List| |#1|)) "\\spad{dictionary([x,{}y,{}...,{}z])} creates a dictionary consisting of entries \\axiom{\\spad{x},{}\\spad{y},{}...,{}\\spad{z}}.") (($) "\\spad{dictionary()}\\$\\spad{D} creates an empty dictionary of type \\spad{D}."))) 
-((-4520 . T) (-3973 . T)) 
+((-4522 . T) (-3973 . T)) 
 NIL 
 (-228) 
 ((|constructor| (NIL "Any solution of a homogeneous linear Diophantine equation can be represented as a sum of minimal solutions,{} which form a \"basis\" (a minimal solution cannot be represented as a nontrivial sum of solutions) in the case of an inhomogeneous linear Diophantine equation,{} each solution is the sum of a inhomogeneous solution and any number of homogeneous solutions therefore,{} it suffices to compute two sets:\\spad{\\br} \\tab{5}1. all minimal inhomogeneous solutions\\spad{\\br} \\tab{5}2. all minimal homogeneous solutions\\spad{\\br} the algorithm implemented is a completion procedure,{} which enumerates all solutions in a recursive depth-first-search it can be seen as finding monotone paths in a graph for more details see Reference")) (|dioSolve| (((|Record| (|:| |varOrder| (|List| (|Symbol|))) (|:| |inhom| (|Union| (|List| (|Vector| (|NonNegativeInteger|))) "failed")) (|:| |hom| (|List| (|Vector| (|NonNegativeInteger|))))) (|Equation| (|Polynomial| (|Integer|)))) "\\spad{dioSolve(u)} computes a basis of all minimal solutions for linear homogeneous Diophantine equation \\spad{u},{} then all minimal solutions of inhomogeneous equation"))) 
 NIL 
 NIL 
-(-229 S -2570 R) 
+(-229 S -1965 R) 
 ((|constructor| (NIL "This category represents a finite cartesian product of a given type. Many categorical properties are preserved under this construction.")) (|dot| ((|#3| $ $) "\\spad{dot(x,{}y)} computes the inner product of the vectors \\spad{x} and \\spad{y}.")) (|unitVector| (($ (|PositiveInteger|)) "\\spad{unitVector(n)} produces a vector with 1 in position \\spad{n} and zero elsewhere.")) (|directProduct| (($ (|Vector| |#3|)) "\\spad{directProduct(v)} converts the vector \\spad{v} to become a direct product. Error: if the length of \\spad{v} is different from dim.")) (|finiteAggregate| ((|attribute|) "attribute to indicate an aggregate of finite size"))) 
 NIL 
-((|HasCategory| |#3| (QUOTE (-365))) (|HasCategory| |#3| (QUOTE (-788))) (|HasCategory| |#3| (QUOTE (-840))) (|HasAttribute| |#3| (QUOTE -4516)) (|HasCategory| |#3| (QUOTE (-172))) (|HasCategory| |#3| (QUOTE (-370))) (|HasCategory| |#3| (QUOTE (-716))) (|HasCategory| |#3| (QUOTE (-137))) (|HasCategory| |#3| (QUOTE (-25))) (|HasCategory| |#3| (QUOTE (-1047))) (|HasCategory| |#3| (QUOTE (-1090)))) 
-(-230 -2570 R) 
+((|HasCategory| |#3| (QUOTE (-365))) (|HasCategory| |#3| (QUOTE (-788))) (|HasCategory| |#3| (QUOTE (-840))) (|HasAttribute| |#3| (QUOTE -4518)) (|HasCategory| |#3| (QUOTE (-172))) (|HasCategory| |#3| (QUOTE (-370))) (|HasCategory| |#3| (QUOTE (-716))) (|HasCategory| |#3| (QUOTE (-137))) (|HasCategory| |#3| (QUOTE (-25))) (|HasCategory| |#3| (QUOTE (-1047))) (|HasCategory| |#3| (QUOTE (-1090)))) 
+(-230 -1965 R) 
 ((|constructor| (NIL "This category represents a finite cartesian product of a given type. Many categorical properties are preserved under this construction.")) (|dot| ((|#2| $ $) "\\spad{dot(x,{}y)} computes the inner product of the vectors \\spad{x} and \\spad{y}.")) (|unitVector| (($ (|PositiveInteger|)) "\\spad{unitVector(n)} produces a vector with 1 in position \\spad{n} and zero elsewhere.")) (|directProduct| (($ (|Vector| |#2|)) "\\spad{directProduct(v)} converts the vector \\spad{v} to become a direct product. Error: if the length of \\spad{v} is different from dim.")) (|finiteAggregate| ((|attribute|) "attribute to indicate an aggregate of finite size"))) 
-((-4513 |has| |#2| (-1047)) (-4514 |has| |#2| (-1047)) (-4516 |has| |#2| (-6 -4516)) ((-4521 "*") |has| |#2| (-172)) (-4519 . T) (-3973 . T)) 
+((-4515 |has| |#2| (-1047)) (-4516 |has| |#2| (-1047)) (-4518 |has| |#2| (-6 -4518)) ((-4523 "*") |has| |#2| (-172)) (-4521 . T) (-3973 . T)) 
 NIL 
-(-231 -2570 A B) 
+(-231 -1965 A B) 
 ((|constructor| (NIL "This package provides operations which all take as arguments direct products of elements of some type \\spad{A} and functions from \\spad{A} to another type \\spad{B}. The operations all iterate over their vector argument and either return a value of type \\spad{B} or a direct product over \\spad{B}.")) (|map| (((|DirectProduct| |#1| |#3|) (|Mapping| |#3| |#2|) (|DirectProduct| |#1| |#2|)) "\\spad{map(f,{} v)} applies the function \\spad{f} to every element of the vector \\spad{v} producing a new vector containing the values.")) (|reduce| ((|#3| (|Mapping| |#3| |#2| |#3|) (|DirectProduct| |#1| |#2|) |#3|) "\\spad{reduce(func,{}vec,{}ident)} combines the elements in \\spad{vec} using the binary function \\spad{func}. Argument \\spad{ident} is returned if the vector is empty.")) (|scan| (((|DirectProduct| |#1| |#3|) (|Mapping| |#3| |#2| |#3|) (|DirectProduct| |#1| |#2|) |#3|) "\\spad{scan(func,{}vec,{}ident)} creates a new vector whose elements are the result of applying reduce to the binary function \\spad{func},{} increasing initial subsequences of the vector \\spad{vec},{} and the element \\spad{ident}."))) 
 NIL 
 NIL 
-(-232 -2570 R) 
+(-232 -1965 R) 
 ((|constructor| (NIL "This type represents the finite direct or cartesian product of an underlying component type. This contrasts with simple vectors in that the members can be viewed as having constant length. Thus many categorical properties can by lifted from the underlying component type. Component extraction operations are provided but no updating operations. Thus new direct product elements can either be created by converting vector elements using the \\spadfun{directProduct} function or by taking appropriate linear combinations of basis vectors provided by the \\spad{unitVector} operation."))) 
-((-4513 |has| |#2| (-1047)) (-4514 |has| |#2| (-1047)) (-4516 |has| |#2| (-6 -4516)) ((-4521 "*") |has| |#2| (-172)) (-4519 . T)) 
-((|HasCategory| |#2| (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047))) (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840))) (-2198 (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840)))) (|HasCategory| |#2| (QUOTE (-716))) (|HasCategory| |#2| (QUOTE (-172))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-365)))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| |#2| (QUOTE (-370))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-225))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1090)))) (|HasAttribute| |#2| (QUOTE -4516)) (|HasCategory| |#2| (QUOTE (-137))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| |#2| (QUOTE (-25))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-25))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-370))) (|HasCategory| |#2| (QUOTE (-716))) (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840))) (|HasCategory| |#2| (QUOTE (-1047))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-25))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2198 (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1090))))) (-2198 (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))))) 
+((-4515 |has| |#2| (-1047)) (-4516 |has| |#2| (-1047)) (-4518 |has| |#2| (-6 -4518)) ((-4523 "*") |has| |#2| (-172)) (-4521 . T)) 
+((|HasCategory| |#2| (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047))) (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840))) (-2199 (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840)))) (|HasCategory| |#2| (QUOTE (-716))) (|HasCategory| |#2| (QUOTE (-172))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-365)))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| |#2| (QUOTE (-370))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-225))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1090)))) (|HasAttribute| |#2| (QUOTE -4518)) (|HasCategory| |#2| (QUOTE (-137))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| |#2| (QUOTE (-25))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-25))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-370))) (|HasCategory| |#2| (QUOTE (-716))) (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840))) (|HasCategory| |#2| (QUOTE (-1047))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-25))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2199 (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1090))))) (-2199 (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))))) 
 (-233 |Coef|) 
 ((|constructor| (NIL "DirichletRing is the ring of arithmetical functions with Dirichlet convolution as multiplication")) (|additive?| (((|Boolean|) $ (|PositiveInteger|)) "\\spad{additive?(a,{} n)} returns \\spad{true} if the first \\spad{n} coefficients of a are additive")) (|multiplicative?| (((|Boolean|) $ (|PositiveInteger|)) "\\spad{multiplicative?(a,{} n)} returns \\spad{true} if the first \\spad{n} coefficients of a are multiplicative")) (|zeta| (($) "\\spad{zeta()} returns the function which is constantly one"))) 
-((-4514 |has| |#1| (-172)) (-4513 |has| |#1| (-172)) ((-4521 "*") |has| |#1| (-172)) (-4512 |has| |#1| (-172)) (-4516 . T)) 
+((-4516 |has| |#1| (-172)) (-4515 |has| |#1| (-172)) ((-4523 "*") |has| |#1| (-172)) (-4514 |has| |#1| (-172)) (-4518 . T)) 
 ((|HasCategory| |#1| (QUOTE (-172)))) 
 (-234) 
 ((|constructor| (NIL "DisplayPackage allows one to print strings in a nice manner,{} including highlighting substrings.")) (|sayLength| (((|Integer|) (|List| (|String|))) "\\spad{sayLength(l)} returns the length of a list of strings \\spad{l} as an integer.") (((|Integer|) (|String|)) "\\spad{sayLength(s)} returns the length of a string \\spad{s} as an integer.")) (|say| (((|Void|) (|List| (|String|))) "\\spad{say(l)} sends a list of strings \\spad{l} to output.") (((|Void|) (|String|)) "\\spad{say(s)} sends a string \\spad{s} to output.")) (|center| (((|List| (|String|)) (|List| (|String|)) (|Integer|) (|String|)) "\\spad{center(l,{}i,{}s)} takes a list of strings \\spad{l},{} and centers them within a list of strings which is \\spad{i} characters long,{} in which the remaining spaces are filled with strings composed of as many repetitions as possible of the last string parameter \\spad{s}.") (((|String|) (|String|) (|Integer|) (|String|)) "\\spad{center(s,{}i,{}s)} takes the first string \\spad{s},{} and centers it within a string of length \\spad{i},{} in which the other elements of the string are composed of as many replications as possible of the second indicated string,{} \\spad{s} which must have a length greater than that of an empty string.")) (|copies| (((|String|) (|Integer|) (|String|)) "\\spad{copies(i,{}s)} will take a string \\spad{s} and create a new string composed of \\spad{i} copies of \\spad{s}.")) (|newLine| (((|String|)) "\\spad{newLine()} sends a new line command to output.")) (|bright| (((|List| (|String|)) (|List| (|String|))) "\\spad{bright(l)} sets the font property of a list of strings,{} \\spad{l},{} to bold-face type.") (((|List| (|String|)) (|String|)) "\\spad{bright(s)} sets the font property of the string \\spad{s} to bold-face type."))) 
@@ -870,11 +870,11 @@ NIL
 NIL 
 (-235 S) 
 ((|constructor| (NIL "This category exports the function for domains")) (|divOfPole| (($ $) "\\spad{divOfPole(d)} returns the negative part of \\spad{d}.")) (|divOfZero| (($ $) "\\spad{divOfZero(d)} returns the positive part of \\spad{d}.")) (|suppOfPole| (((|List| |#1|) $) "suppOfZero(\\spad{d}) returns the elements of the support of \\spad{d} that have a negative coefficient.")) (|suppOfZero| (((|List| |#1|) $) "\\spad{suppOfZero(d)} returns the elements of the support of \\spad{d} that have a positive coefficient.")) (|supp| (((|List| |#1|) $) "\\spad{supp(d)} returns the support of the divisor \\spad{d}.")) (|effective?| (((|Boolean|) $) "\\spad{effective?(d)} returns \\spad{true} if \\spad{d} \\spad{>=} 0.")) (|concat| (($ $ $) "\\spad{concat(a,{}b)} concats the divisor a and \\spad{b} without collecting the duplicative points.")) (|collect| (($ $) "\\spad{collect collects} the duplicative points in the divisor.")) (|split| (((|List| $) $) "\\spad{split(d)} splits the divisor \\spad{d}. For example,{} split( 2 \\spad{p1} + 3p2 ) returns the list [ 2 \\spad{p1},{} 3 \\spad{p2} ].")) (|degree| (((|Integer|) $) "\\spad{degree(d)} returns the degree of the divisor \\spad{d}"))) 
-((-4514 . T) (-4513 . T)) 
+((-4516 . T) (-4515 . T)) 
 NIL 
 (-236 S) 
 ((|constructor| (NIL "The following is part of the PAFF package"))) 
-((-4514 . T) (-4513 . T)) 
+((-4516 . T) (-4515 . T)) 
 ((|HasCategory| (-568) (QUOTE (-787)))) 
 (-237 S) 
 ((|constructor| (NIL "A division ring (sometimes called a skew field),{} \\spadignore{i.e.} a not necessarily commutative ring where all non-zero elements have multiplicative inverses.")) (|inv| (($ $) "\\spad{inv x} returns the multiplicative inverse of \\spad{x}. Error: if \\spad{x} is 0.")) (^ (($ $ (|Integer|)) "\\spad{x^n} returns \\spad{x} raised to the integer power \\spad{n}.")) (** (($ $ (|Integer|)) "\\spad{x**n} returns \\spad{x} raised to the integer power \\spad{n}."))) 
@@ -882,7 +882,7 @@ NIL
 NIL 
 (-238) 
 ((|constructor| (NIL "A division ring (sometimes called a skew field),{} \\spadignore{i.e.} a not necessarily commutative ring where all non-zero elements have multiplicative inverses.")) (|inv| (($ $) "\\spad{inv x} returns the multiplicative inverse of \\spad{x}. Error: if \\spad{x} is 0.")) (^ (($ $ (|Integer|)) "\\spad{x^n} returns \\spad{x} raised to the integer power \\spad{n}.")) (** (($ $ (|Integer|)) "\\spad{x**n} returns \\spad{x} raised to the integer power \\spad{n}."))) 
-((-4512 . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4514 . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-239 S) 
 ((|constructor| (NIL "A doubly-linked aggregate serves as a model for a doubly-linked list,{} that is,{} a list which can has links to both next and previous nodes and thus can be efficiently traversed in both directions.")) (|setnext!| (($ $ $) "\\spad{setnext!(u,{}v)} destructively sets the next node of doubly-linked aggregate \\spad{u} to \\spad{v},{} returning \\spad{v}.")) (|setprevious!| (($ $ $) "\\spad{setprevious!(u,{}v)} destructively sets the previous node of doubly-linked aggregate \\spad{u} to \\spad{v},{} returning \\spad{v}.")) (|concat!| (($ $ $) "\\spad{concat!(u,{}v)} destructively concatenates doubly-linked aggregate \\spad{v} to the end of doubly-linked aggregate \\spad{u}.")) (|next| (($ $) "\\spad{next(l)} returns the doubly-linked aggregate beginning with its next element. Error: if \\spad{l} has no next element. Note that \\axiom{next(\\spad{l}) = rest(\\spad{l})} and \\axiom{previous(next(\\spad{l})) = \\spad{l}}.")) (|previous| (($ $) "\\spad{previous(l)} returns the doubly-link list beginning with its previous element. Error: if \\spad{l} has no previous element. Note that \\axiom{next(previous(\\spad{l})) = \\spad{l}}.")) (|tail| (($ $) "\\spad{tail(l)} returns the doubly-linked aggregate \\spad{l} starting at its second element. Error: if \\spad{l} is empty.")) (|head| (($ $) "\\spad{head(l)} returns the first element of a doubly-linked aggregate \\spad{l}. Error: if \\spad{l} is empty.")) (|last| ((|#1| $) "\\spad{last(l)} returns the last element of a doubly-linked aggregate \\spad{l}. Error: if \\spad{l} is empty."))) 
@@ -890,35 +890,35 @@ NIL
 NIL 
 (-240 S) 
 ((|constructor| (NIL "This domain provides some nice functions on lists")) (|elt| (((|NonNegativeInteger|) $ "count") "\\axiom{\\spad{l}.\"count\"} returns the number of elements in \\axiom{\\spad{l}}.") (($ $ "sort") "\\axiom{\\spad{l}.sort} returns \\axiom{\\spad{l}} with elements sorted. Note: \\axiom{\\spad{l}.sort = sort(\\spad{l})}") (($ $ "unique") "\\axiom{\\spad{l}.unique} returns \\axiom{\\spad{l}} with duplicates removed. Note: \\axiom{\\spad{l}.unique = removeDuplicates(\\spad{l})}.")) (|datalist| (($ (|List| |#1|)) "\\spad{datalist(l)} creates a datalist from \\spad{l}")) (|coerce| (((|List| |#1|) $) "\\spad{coerce(x)} returns the list of elements in \\spad{x}") (($ (|List| |#1|)) "\\spad{coerce(l)} creates a datalist from \\spad{l}"))) 
-((-4520 . T) (-4519 . T)) 
-((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (-2198 (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
+((-4522 . T) (-4521 . T)) 
+((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (-2199 (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
 (-241 M) 
 ((|constructor| (NIL "DiscreteLogarithmPackage implements help functions for discrete logarithms in monoids using small cyclic groups.")) (|shanksDiscLogAlgorithm| (((|Union| (|NonNegativeInteger|) "failed") |#1| |#1| (|NonNegativeInteger|)) "\\spad{shanksDiscLogAlgorithm(b,{}a,{}p)} computes \\spad{s} with \\spad{b**s = a} for assuming that \\spad{a} and \\spad{b} are elements in a 'small' cyclic group of order \\spad{p} by Shank\\spad{'s} algorithm. Note that this is a subroutine of the function \\spadfun{discreteLog}.")) (** ((|#1| |#1| (|Integer|)) "\\spad{x ** n} returns \\spad{x} raised to the integer power \\spad{n}"))) 
 NIL 
 NIL 
 (-242 |vl| R) 
 ((|constructor| (NIL "This type supports distributed multivariate polynomials whose variables are from a user specified list of symbols. The coefficient ring may be non commutative,{} but the variables are assumed to commute. The term ordering is lexicographic specified by the variable list parameter with the most significant variable first in the list.")) (|reorder| (($ $ (|List| (|Integer|))) "\\spad{reorder(p,{} perm)} applies the permutation perm to the variables in a polynomial and returns the new correctly ordered polynomial"))) 
-(((-4521 "*") |has| |#2| (-172)) (-4512 |has| |#2| (-558)) (-4517 |has| |#2| (-6 -4517)) (-4514 . T) (-4513 . T) (-4516 . T)) 
-((|HasCategory| |#2| (QUOTE (-904))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-172))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-558)))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#2| (QUOTE (-842))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-365))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasAttribute| |#2| (QUOTE -4517)) (|HasCategory| |#2| (QUOTE (-453))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2198 (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2198 (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (|HasCategory| |#2| (QUOTE (-148))))) 
+(((-4523 "*") |has| |#2| (-172)) (-4514 |has| |#2| (-558)) (-4519 |has| |#2| (-6 -4519)) (-4516 . T) (-4515 . T) (-4518 . T)) 
+((|HasCategory| |#2| (QUOTE (-904))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-172))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-558)))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#2| (QUOTE (-842))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-365))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasAttribute| |#2| (QUOTE -4519)) (|HasCategory| |#2| (QUOTE (-453))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2199 (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2199 (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (|HasCategory| |#2| (QUOTE (-148))))) 
 (-243 |n| R M S) 
 ((|constructor| (NIL "This constructor provides a direct product type with a left matrix-module view."))) 
-((-4516 -2198 (-2139 (|has| |#4| (-1047)) (|has| |#4| (-225))) (-2139 (|has| |#4| (-1047)) (|has| |#4| (-895 (-1161)))) (|has| |#4| (-6 -4516)) (-2139 (|has| |#4| (-1047)) (|has| |#4| (-630 (-568))))) (-4513 |has| |#4| (-1047)) (-4514 |has| |#4| (-1047)) ((-4521 "*") |has| |#4| (-172)) (-4519 . T)) 
-((|HasCategory| |#4| (QUOTE (-365))) (|HasCategory| |#4| (QUOTE (-1047))) (|HasCategory| |#4| (QUOTE (-788))) (|HasCategory| |#4| (QUOTE (-840))) (-2198 (|HasCategory| |#4| (QUOTE (-788))) (|HasCategory| |#4| (QUOTE (-840)))) (|HasCategory| |#4| (QUOTE (-716))) (|HasCategory| |#4| (QUOTE (-172))) (-2198 (|HasCategory| |#4| (QUOTE (-172))) (|HasCategory| |#4| (QUOTE (-365))) (|HasCategory| |#4| (QUOTE (-1047)))) (-2198 (|HasCategory| |#4| (QUOTE (-172))) (|HasCategory| |#4| (QUOTE (-365)))) (-2198 (|HasCategory| |#4| (QUOTE (-172))) (|HasCategory| |#4| (QUOTE (-1047)))) (|HasCategory| |#4| (QUOTE (-370))) (|HasCategory| |#4| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#4| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#4| (QUOTE (-225))) (-2198 (|HasCategory| |#4| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#4| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#4| (QUOTE (-172))) (|HasCategory| |#4| (QUOTE (-225))) (|HasCategory| |#4| (QUOTE (-1047)))) (|HasCategory| |#4| (QUOTE (-1090))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#4| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (QUOTE (-225))) (|HasCategory| |#4| (QUOTE (-1047)))) (-2198 (-12 (|HasCategory| |#4| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (QUOTE (-225))) (|HasCategory| |#4| (QUOTE (-1047)))) (|HasCategory| |#4| (QUOTE (-716)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#4| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#4| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-172)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-225)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-365)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-370)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-716)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-788)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-840)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-1090))))) (-2198 (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-1090)))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#4| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#4| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-172)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-225)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-365)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-370)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-716)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-788)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-840)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-1090))))) (-2198 (|HasAttribute| |#4| (QUOTE -4516)) (-12 (|HasCategory| |#4| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (QUOTE (-225))) (|HasCategory| |#4| (QUOTE (-1047))))) (|HasCategory| |#4| (QUOTE (-137))) (|HasCategory| |#4| (QUOTE (-25))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (LIST (QUOTE -630) (QUOTE (-568))))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (LIST (QUOTE -895) (QUOTE (-1161))))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-172)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-225)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-365)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-370)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-716)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-788)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-840)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-1090)))))) 
+((-4518 -2199 (-2141 (|has| |#4| (-1047)) (|has| |#4| (-225))) (-2141 (|has| |#4| (-1047)) (|has| |#4| (-895 (-1161)))) (|has| |#4| (-6 -4518)) (-2141 (|has| |#4| (-1047)) (|has| |#4| (-630 (-568))))) (-4515 |has| |#4| (-1047)) (-4516 |has| |#4| (-1047)) ((-4523 "*") |has| |#4| (-172)) (-4521 . T)) 
+((|HasCategory| |#4| (QUOTE (-365))) (|HasCategory| |#4| (QUOTE (-1047))) (|HasCategory| |#4| (QUOTE (-788))) (|HasCategory| |#4| (QUOTE (-840))) (-2199 (|HasCategory| |#4| (QUOTE (-788))) (|HasCategory| |#4| (QUOTE (-840)))) (|HasCategory| |#4| (QUOTE (-716))) (|HasCategory| |#4| (QUOTE (-172))) (-2199 (|HasCategory| |#4| (QUOTE (-172))) (|HasCategory| |#4| (QUOTE (-365))) (|HasCategory| |#4| (QUOTE (-1047)))) (-2199 (|HasCategory| |#4| (QUOTE (-172))) (|HasCategory| |#4| (QUOTE (-365)))) (-2199 (|HasCategory| |#4| (QUOTE (-172))) (|HasCategory| |#4| (QUOTE (-1047)))) (|HasCategory| |#4| (QUOTE (-370))) (|HasCategory| |#4| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#4| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#4| (QUOTE (-225))) (-2199 (|HasCategory| |#4| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#4| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#4| (QUOTE (-172))) (|HasCategory| |#4| (QUOTE (-225))) (|HasCategory| |#4| (QUOTE (-1047)))) (|HasCategory| |#4| (QUOTE (-1090))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#4| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (QUOTE (-225))) (|HasCategory| |#4| (QUOTE (-1047)))) (-2199 (-12 (|HasCategory| |#4| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (QUOTE (-225))) (|HasCategory| |#4| (QUOTE (-1047)))) (|HasCategory| |#4| (QUOTE (-716)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#4| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#4| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-172)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-225)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-365)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-370)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-716)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-788)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-840)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-1090))))) (-2199 (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-1090)))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#4| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#4| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-172)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-225)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-365)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-370)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-716)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-788)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-840)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#4| (QUOTE (-1090))))) (-2199 (|HasAttribute| |#4| (QUOTE -4518)) (-12 (|HasCategory| |#4| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (QUOTE (-225))) (|HasCategory| |#4| (QUOTE (-1047))))) (|HasCategory| |#4| (QUOTE (-137))) (|HasCategory| |#4| (QUOTE (-25))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (LIST (QUOTE -630) (QUOTE (-568))))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (LIST (QUOTE -895) (QUOTE (-1161))))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-172)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-225)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-365)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-370)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-716)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-788)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-840)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-1047)))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-1090)))))) 
 (-244 |n| R S) 
 ((|constructor| (NIL "This constructor provides a direct product of \\spad{R}-modules with an \\spad{R}-module view."))) 
-((-4516 -2198 (-2139 (|has| |#3| (-1047)) (|has| |#3| (-225))) (-2139 (|has| |#3| (-1047)) (|has| |#3| (-895 (-1161)))) (|has| |#3| (-6 -4516)) (-2139 (|has| |#3| (-1047)) (|has| |#3| (-630 (-568))))) (-4513 |has| |#3| (-1047)) (-4514 |has| |#3| (-1047)) ((-4521 "*") |has| |#3| (-172)) (-4519 . T)) 
-((|HasCategory| |#3| (QUOTE (-365))) (|HasCategory| |#3| (QUOTE (-1047))) (|HasCategory| |#3| (QUOTE (-788))) (|HasCategory| |#3| (QUOTE (-840))) (-2198 (|HasCategory| |#3| (QUOTE (-788))) (|HasCategory| |#3| (QUOTE (-840)))) (|HasCategory| |#3| (QUOTE (-716))) (|HasCategory| |#3| (QUOTE (-172))) (-2198 (|HasCategory| |#3| (QUOTE (-172))) (|HasCategory| |#3| (QUOTE (-365))) (|HasCategory| |#3| (QUOTE (-1047)))) (-2198 (|HasCategory| |#3| (QUOTE (-172))) (|HasCategory| |#3| (QUOTE (-365)))) (-2198 (|HasCategory| |#3| (QUOTE (-172))) (|HasCategory| |#3| (QUOTE (-1047)))) (|HasCategory| |#3| (QUOTE (-370))) (|HasCategory| |#3| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#3| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#3| (QUOTE (-225))) (-2198 (|HasCategory| |#3| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#3| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#3| (QUOTE (-172))) (|HasCategory| |#3| (QUOTE (-225))) (|HasCategory| |#3| (QUOTE (-1047)))) (|HasCategory| |#3| (QUOTE (-1090))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#3| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (QUOTE (-225))) (|HasCategory| |#3| (QUOTE (-1047)))) (-2198 (-12 (|HasCategory| |#3| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (QUOTE (-225))) (|HasCategory| |#3| (QUOTE (-1047)))) (|HasCategory| |#3| (QUOTE (-716)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#3| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#3| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-172)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-225)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-365)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-370)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-716)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-788)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-840)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-1090))))) (-2198 (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-1090)))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#3| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#3| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-172)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-225)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-365)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-370)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-716)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-788)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-840)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-1090))))) (-2198 (|HasAttribute| |#3| (QUOTE -4516)) (-12 (|HasCategory| |#3| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (QUOTE (-225))) (|HasCategory| |#3| (QUOTE (-1047))))) (|HasCategory| |#3| (QUOTE (-137))) (|HasCategory| |#3| (QUOTE (-25))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (LIST (QUOTE -630) (QUOTE (-568))))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (LIST (QUOTE -895) (QUOTE (-1161))))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-172)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-225)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-365)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-370)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-716)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-788)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-840)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-1090)))))) 
+((-4518 -2199 (-2141 (|has| |#3| (-1047)) (|has| |#3| (-225))) (-2141 (|has| |#3| (-1047)) (|has| |#3| (-895 (-1161)))) (|has| |#3| (-6 -4518)) (-2141 (|has| |#3| (-1047)) (|has| |#3| (-630 (-568))))) (-4515 |has| |#3| (-1047)) (-4516 |has| |#3| (-1047)) ((-4523 "*") |has| |#3| (-172)) (-4521 . T)) 
+((|HasCategory| |#3| (QUOTE (-365))) (|HasCategory| |#3| (QUOTE (-1047))) (|HasCategory| |#3| (QUOTE (-788))) (|HasCategory| |#3| (QUOTE (-840))) (-2199 (|HasCategory| |#3| (QUOTE (-788))) (|HasCategory| |#3| (QUOTE (-840)))) (|HasCategory| |#3| (QUOTE (-716))) (|HasCategory| |#3| (QUOTE (-172))) (-2199 (|HasCategory| |#3| (QUOTE (-172))) (|HasCategory| |#3| (QUOTE (-365))) (|HasCategory| |#3| (QUOTE (-1047)))) (-2199 (|HasCategory| |#3| (QUOTE (-172))) (|HasCategory| |#3| (QUOTE (-365)))) (-2199 (|HasCategory| |#3| (QUOTE (-172))) (|HasCategory| |#3| (QUOTE (-1047)))) (|HasCategory| |#3| (QUOTE (-370))) (|HasCategory| |#3| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#3| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#3| (QUOTE (-225))) (-2199 (|HasCategory| |#3| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#3| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#3| (QUOTE (-172))) (|HasCategory| |#3| (QUOTE (-225))) (|HasCategory| |#3| (QUOTE (-1047)))) (|HasCategory| |#3| (QUOTE (-1090))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#3| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (QUOTE (-225))) (|HasCategory| |#3| (QUOTE (-1047)))) (-2199 (-12 (|HasCategory| |#3| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (QUOTE (-225))) (|HasCategory| |#3| (QUOTE (-1047)))) (|HasCategory| |#3| (QUOTE (-716)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#3| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#3| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-172)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-225)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-365)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-370)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-716)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-788)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-840)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-1090))))) (-2199 (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-1090)))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#3| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#3| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-172)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-225)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-365)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-370)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-716)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-788)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-840)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#3| (QUOTE (-1090))))) (-2199 (|HasAttribute| |#3| (QUOTE -4518)) (-12 (|HasCategory| |#3| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (QUOTE (-225))) (|HasCategory| |#3| (QUOTE (-1047))))) (|HasCategory| |#3| (QUOTE (-137))) (|HasCategory| |#3| (QUOTE (-25))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (LIST (QUOTE -630) (QUOTE (-568))))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (LIST (QUOTE -895) (QUOTE (-1161))))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-172)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-225)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-365)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-370)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-716)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-788)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-840)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-1047)))) (-12 (|HasCategory| |#3| (LIST (QUOTE -303) (|devaluate| |#3|))) (|HasCategory| |#3| (QUOTE (-1090)))))) 
 (-245 A R S V E) 
 ((|constructor| (NIL "\\spadtype{DifferentialPolynomialCategory} is a category constructor specifying basic functions in an ordinary differential polynomial ring with a given ordered set of differential indeterminates. In addition,{} it implements defaults for the basic functions. The functions \\spadfun{order} and \\spadfun{weight} are extended from the set of derivatives of differential indeterminates to the set of differential polynomials. Other operations provided on differential polynomials are \\spadfun{leader},{} \\spadfun{initial},{} \\spadfun{separant},{} \\spadfun{differentialVariables},{} and \\spadfun{isobaric?}. Furthermore,{} if the ground ring is a differential ring,{} then evaluation (substitution of differential indeterminates by elements of the ground ring or by differential polynomials) is provided by \\spadfun{eval}. A convenient way of referencing derivatives is provided by the functions \\spadfun{makeVariable}. \\blankline To construct a domain using this constructor,{} one needs to provide a ground ring \\spad{R},{} an ordered set \\spad{S} of differential indeterminates,{} a ranking \\spad{V} on the set of derivatives of the differential indeterminates,{} and a set \\spad{E} of exponents in bijection with the set of differential monomials in the given differential indeterminates.")) (|separant| (($ $) "\\spad{separant(p)} returns the partial derivative of the differential polynomial \\spad{p} with respect to its leader.")) (|initial| (($ $) "\\spad{initial(p)} returns the leading coefficient when the differential polynomial \\spad{p} is written as a univariate polynomial in its leader.")) (|leader| ((|#4| $) "\\spad{leader(p)} returns the derivative of the highest rank appearing in the differential polynomial \\spad{p} Note that an error occurs if \\spad{p} is in the ground ring.")) (|isobaric?| (((|Boolean|) $) "\\spad{isobaric?(p)} returns \\spad{true} if every differential monomial appearing in the differential polynomial \\spad{p} has same weight,{} and returns \\spad{false} otherwise.")) (|weight| (((|NonNegativeInteger|) $ |#3|) "\\spad{weight(p,{} s)} returns the maximum weight of all differential monomials appearing in the differential polynomial \\spad{p} when \\spad{p} is viewed as a differential polynomial in the differential indeterminate \\spad{s} alone.") (((|NonNegativeInteger|) $) "\\spad{weight(p)} returns the maximum weight of all differential monomials appearing in the differential polynomial \\spad{p}.")) (|weights| (((|List| (|NonNegativeInteger|)) $ |#3|) "\\spad{weights(p,{} s)} returns a list of weights of differential monomials appearing in the differential polynomial \\spad{p} when \\spad{p} is viewed as a differential polynomial in the differential indeterminate \\spad{s} alone.") (((|List| (|NonNegativeInteger|)) $) "\\spad{weights(p)} returns a list of weights of differential monomials appearing in differential polynomial \\spad{p}.")) (|degree| (((|NonNegativeInteger|) $ |#3|) "\\spad{degree(p,{} s)} returns the maximum degree of the differential polynomial \\spad{p} viewed as a differential polynomial in the differential indeterminate \\spad{s} alone.")) (|order| (((|NonNegativeInteger|) $) "\\spad{order(p)} returns the order of the differential polynomial \\spad{p},{} which is the maximum number of differentiations of a differential indeterminate,{} among all those appearing in \\spad{p}.") (((|NonNegativeInteger|) $ |#3|) "\\spad{order(p,{}s)} returns the order of the differential polynomial \\spad{p} in differential indeterminate \\spad{s}.")) (|differentialVariables| (((|List| |#3|) $) "\\spad{differentialVariables(p)} returns a list of differential indeterminates occurring in a differential polynomial \\spad{p}.")) (|makeVariable| (((|Mapping| $ (|NonNegativeInteger|)) $) "\\spad{makeVariable(p)} views \\spad{p} as an element of a differential ring,{} in such a way that the \\spad{n}-th derivative of \\spad{p} may be simply referenced as \\spad{z}.\\spad{n} where \\spad{z} \\spad{:=} makeVariable(\\spad{p}). Note that In the interpreter,{} \\spad{z} is given as an internal map,{} which may be ignored.") (((|Mapping| $ (|NonNegativeInteger|)) |#3|) "\\spad{makeVariable(s)} views \\spad{s} as a differential indeterminate,{} in such a way that the \\spad{n}-th derivative of \\spad{s} may be simply referenced as \\spad{z}.\\spad{n} where \\spad{z} :=makeVariable(\\spad{s}). Note that In the interpreter,{} \\spad{z} is given as an internal map,{} which may be ignored."))) 
 NIL 
 ((|HasCategory| |#2| (QUOTE (-225)))) 
 (-246 R S V E) 
 ((|constructor| (NIL "\\spadtype{DifferentialPolynomialCategory} is a category constructor specifying basic functions in an ordinary differential polynomial ring with a given ordered set of differential indeterminates. In addition,{} it implements defaults for the basic functions. The functions \\spadfun{order} and \\spadfun{weight} are extended from the set of derivatives of differential indeterminates to the set of differential polynomials. Other operations provided on differential polynomials are \\spadfun{leader},{} \\spadfun{initial},{} \\spadfun{separant},{} \\spadfun{differentialVariables},{} and \\spadfun{isobaric?}. Furthermore,{} if the ground ring is a differential ring,{} then evaluation (substitution of differential indeterminates by elements of the ground ring or by differential polynomials) is provided by \\spadfun{eval}. A convenient way of referencing derivatives is provided by the functions \\spadfun{makeVariable}. \\blankline To construct a domain using this constructor,{} one needs to provide a ground ring \\spad{R},{} an ordered set \\spad{S} of differential indeterminates,{} a ranking \\spad{V} on the set of derivatives of the differential indeterminates,{} and a set \\spad{E} of exponents in bijection with the set of differential monomials in the given differential indeterminates.")) (|separant| (($ $) "\\spad{separant(p)} returns the partial derivative of the differential polynomial \\spad{p} with respect to its leader.")) (|initial| (($ $) "\\spad{initial(p)} returns the leading coefficient when the differential polynomial \\spad{p} is written as a univariate polynomial in its leader.")) (|leader| ((|#3| $) "\\spad{leader(p)} returns the derivative of the highest rank appearing in the differential polynomial \\spad{p} Note that an error occurs if \\spad{p} is in the ground ring.")) (|isobaric?| (((|Boolean|) $) "\\spad{isobaric?(p)} returns \\spad{true} if every differential monomial appearing in the differential polynomial \\spad{p} has same weight,{} and returns \\spad{false} otherwise.")) (|weight| (((|NonNegativeInteger|) $ |#2|) "\\spad{weight(p,{} s)} returns the maximum weight of all differential monomials appearing in the differential polynomial \\spad{p} when \\spad{p} is viewed as a differential polynomial in the differential indeterminate \\spad{s} alone.") (((|NonNegativeInteger|) $) "\\spad{weight(p)} returns the maximum weight of all differential monomials appearing in the differential polynomial \\spad{p}.")) (|weights| (((|List| (|NonNegativeInteger|)) $ |#2|) "\\spad{weights(p,{} s)} returns a list of weights of differential monomials appearing in the differential polynomial \\spad{p} when \\spad{p} is viewed as a differential polynomial in the differential indeterminate \\spad{s} alone.") (((|List| (|NonNegativeInteger|)) $) "\\spad{weights(p)} returns a list of weights of differential monomials appearing in differential polynomial \\spad{p}.")) (|degree| (((|NonNegativeInteger|) $ |#2|) "\\spad{degree(p,{} s)} returns the maximum degree of the differential polynomial \\spad{p} viewed as a differential polynomial in the differential indeterminate \\spad{s} alone.")) (|order| (((|NonNegativeInteger|) $) "\\spad{order(p)} returns the order of the differential polynomial \\spad{p},{} which is the maximum number of differentiations of a differential indeterminate,{} among all those appearing in \\spad{p}.") (((|NonNegativeInteger|) $ |#2|) "\\spad{order(p,{}s)} returns the order of the differential polynomial \\spad{p} in differential indeterminate \\spad{s}.")) (|differentialVariables| (((|List| |#2|) $) "\\spad{differentialVariables(p)} returns a list of differential indeterminates occurring in a differential polynomial \\spad{p}.")) (|makeVariable| (((|Mapping| $ (|NonNegativeInteger|)) $) "\\spad{makeVariable(p)} views \\spad{p} as an element of a differential ring,{} in such a way that the \\spad{n}-th derivative of \\spad{p} may be simply referenced as \\spad{z}.\\spad{n} where \\spad{z} \\spad{:=} makeVariable(\\spad{p}). Note that In the interpreter,{} \\spad{z} is given as an internal map,{} which may be ignored.") (((|Mapping| $ (|NonNegativeInteger|)) |#2|) "\\spad{makeVariable(s)} views \\spad{s} as a differential indeterminate,{} in such a way that the \\spad{n}-th derivative of \\spad{s} may be simply referenced as \\spad{z}.\\spad{n} where \\spad{z} :=makeVariable(\\spad{s}). Note that In the interpreter,{} \\spad{z} is given as an internal map,{} which may be ignored."))) 
-(((-4521 "*") |has| |#1| (-172)) (-4512 |has| |#1| (-558)) (-4517 |has| |#1| (-6 -4517)) (-4514 . T) (-4513 . T) (-4516 . T)) 
+(((-4523 "*") |has| |#1| (-172)) (-4514 |has| |#1| (-558)) (-4519 |has| |#1| (-6 -4519)) (-4516 . T) (-4515 . T) (-4518 . T)) 
 NIL 
 (-247 S) 
 ((|constructor| (NIL "A dequeue is a doubly ended stack,{} that is,{} a bag where first items inserted are the first items extracted,{} at either the front or the back end of the data structure.")) (|reverse!| (($ $) "\\spad{reverse!(d)} destructively replaces \\spad{d} by its reverse dequeue,{} \\spadignore{i.e.} the top (front) element is now the bottom (back) element,{} and so on.")) (|extractBottom!| ((|#1| $) "\\spad{extractBottom!(d)} destructively extracts the bottom (back) element from the dequeue \\spad{d}. Error: if \\spad{d} is empty.")) (|extractTop!| ((|#1| $) "\\spad{extractTop!(d)} destructively extracts the top (front) element from the dequeue \\spad{d}. Error: if \\spad{d} is empty.")) (|insertBottom!| ((|#1| |#1| $) "\\spad{insertBottom!(x,{}d)} destructively inserts \\spad{x} into the dequeue \\spad{d} at the bottom (back) of the dequeue.")) (|insertTop!| ((|#1| |#1| $) "\\spad{insertTop!(x,{}d)} destructively inserts \\spad{x} into the dequeue \\spad{d},{} that is,{} at the top (front) of the dequeue. The element previously at the top of the dequeue becomes the second in the dequeue,{} and so on.")) (|bottom!| ((|#1| $) "\\spad{bottom!(d)} returns the element at the bottom (back) of the dequeue.")) (|top!| ((|#1| $) "\\spad{top!(d)} returns the element at the top (front) of the dequeue.")) (|height| (((|NonNegativeInteger|) $) "\\spad{height(d)} returns the number of elements in dequeue \\spad{d}. Note that \\axiom{height(\\spad{d}) = \\# \\spad{d}}.")) (|dequeue| (($ (|List| |#1|)) "\\spad{dequeue([x,{}y,{}...,{}z])} creates a dequeue with first (top or front) element \\spad{x},{} second element \\spad{y},{}...,{}and last (bottom or back) element \\spad{z}.") (($) "\\spad{dequeue()}\\$\\spad{D} creates an empty dequeue of type \\spad{D}."))) 
-((-4519 . T) (-4520 . T) (-3973 . T)) 
+((-4521 . T) (-4522 . T) (-3973 . T)) 
 NIL 
 (-248) 
 ((|constructor| (NIL "TopLevelDrawFunctionsForCompiledFunctions provides top level functions for drawing graphics of expressions.")) (|recolor| (((|Mapping| (|Point| (|DoubleFloat|)) (|DoubleFloat|) (|DoubleFloat|)) (|Mapping| (|Point| (|DoubleFloat|)) (|DoubleFloat|) (|DoubleFloat|)) (|Mapping| (|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|))) "\\spad{recolor()},{} uninteresting to top level user; exported in order to compile package.")) (|makeObject| (((|ThreeSpace| (|DoubleFloat|)) (|ParametricSurface| (|Mapping| (|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|))) (|Segment| (|Float|)) (|Segment| (|Float|))) "\\spad{makeObject(surface(f,{}g,{}h),{}a..b,{}c..d,{}l)} returns a space of the domain \\spadtype{ThreeSpace} which contains the graph of the parametric surface \\spad{x = f(u,{}v)},{} \\spad{y = g(u,{}v)},{} \\spad{z = h(u,{}v)} as \\spad{u} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)} and \\spad{v} ranges from \\spad{min(c,{}d)} to \\spad{max(c,{}d)}.") (((|ThreeSpace| (|DoubleFloat|)) (|ParametricSurface| (|Mapping| (|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|))) (|Segment| (|Float|)) (|Segment| (|Float|)) (|List| (|DrawOption|))) "\\spad{makeObject(surface(f,{}g,{}h),{}a..b,{}c..d,{}l)} returns a space of the domain \\spadtype{ThreeSpace} which contains the graph of the parametric surface \\spad{x = f(u,{}v)},{} \\spad{y = g(u,{}v)},{} \\spad{z = h(u,{}v)} as \\spad{u} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)} and \\spad{v} ranges from \\spad{min(c,{}d)} to \\spad{max(c,{}d)}. The options contained in the list \\spad{l} of the domain \\spad{DrawOption} are applied.") (((|ThreeSpace| (|DoubleFloat|)) (|Mapping| (|Point| (|DoubleFloat|)) (|DoubleFloat|) (|DoubleFloat|)) (|Segment| (|Float|)) (|Segment| (|Float|))) "\\spad{makeObject(f,{}a..b,{}c..d,{}l)} returns a space of the domain \\spadtype{ThreeSpace} which contains the graph of the parametric surface \\spad{f(u,{}v)} as \\spad{u} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)} and \\spad{v} ranges from \\spad{min(c,{}d)} to \\spad{max(c,{}d)}.") (((|ThreeSpace| (|DoubleFloat|)) (|Mapping| (|Point| (|DoubleFloat|)) (|DoubleFloat|) (|DoubleFloat|)) (|Segment| (|Float|)) (|Segment| (|Float|)) (|List| (|DrawOption|))) "\\spad{makeObject(f,{}a..b,{}c..d,{}l)} returns a space of the domain \\spadtype{ThreeSpace} which contains the graph of the parametric surface \\spad{f(u,{}v)} as \\spad{u} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)} and \\spad{v} ranges from \\spad{min(c,{}d)} to \\spad{max(c,{}d)}; The options contained in the list \\spad{l} of the domain \\spad{DrawOption} are applied.") (((|ThreeSpace| (|DoubleFloat|)) (|Mapping| (|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|)) (|Segment| (|Float|)) (|Segment| (|Float|))) "\\spad{makeObject(f,{}a..b,{}c..d)} returns a space of the domain \\spadtype{ThreeSpace} which contains the graph of \\spad{z = f(x,{}y)} as \\spad{x} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)} and \\spad{y} ranges from \\spad{min(c,{}d)} to \\spad{max(c,{}d)}.") (((|ThreeSpace| (|DoubleFloat|)) (|Mapping| (|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|)) (|Segment| (|Float|)) (|Segment| (|Float|)) (|List| (|DrawOption|))) "\\spad{makeObject(f,{}a..b,{}c..d,{}l)} returns a space of the domain \\spadtype{ThreeSpace} which contains the graph of \\spad{z = f(x,{}y)} as \\spad{x} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)} and \\spad{y} ranges from \\spad{min(c,{}d)} to \\spad{max(c,{}d)},{} and the options contained in the list \\spad{l} of the domain \\spad{DrawOption} are applied.") (((|ThreeSpace| (|DoubleFloat|)) (|Mapping| (|Point| (|DoubleFloat|)) (|DoubleFloat|)) (|Segment| (|Float|))) "\\spad{makeObject(sp,{}curve(f,{}g,{}h),{}a..b)} returns the space \\spad{sp} of the domain \\spadtype{ThreeSpace} with the addition of the graph of the parametric curve \\spad{x = f(t),{} y = g(t),{} z = h(t)} as \\spad{t} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)}.") (((|ThreeSpace| (|DoubleFloat|)) (|Mapping| (|Point| (|DoubleFloat|)) (|DoubleFloat|)) (|Segment| (|Float|)) (|List| (|DrawOption|))) "\\spad{makeObject(curve(f,{}g,{}h),{}a..b,{}l)} returns a space of the domain \\spadtype{ThreeSpace} which contains the graph of the parametric curve \\spad{x = f(t),{} y = g(t),{} z = h(t)} as \\spad{t} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)}. The options contained in the list \\spad{l} of the domain \\spad{DrawOption} are applied.") (((|ThreeSpace| (|DoubleFloat|)) (|ParametricSpaceCurve| (|Mapping| (|DoubleFloat|) (|DoubleFloat|))) (|Segment| (|Float|))) "\\spad{makeObject(sp,{}curve(f,{}g,{}h),{}a..b)} returns the space \\spad{sp} of the domain \\spadtype{ThreeSpace} with the addition of the graph of the parametric curve \\spad{x = f(t),{} y = g(t),{} z = h(t)} as \\spad{t} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)}.") (((|ThreeSpace| (|DoubleFloat|)) (|ParametricSpaceCurve| (|Mapping| (|DoubleFloat|) (|DoubleFloat|))) (|Segment| (|Float|)) (|List| (|DrawOption|))) "\\spad{makeObject(curve(f,{}g,{}h),{}a..b,{}l)} returns a space of the domain \\spadtype{ThreeSpace} which contains the graph of the parametric curve \\spad{x = f(t),{} y = g(t),{} z = h(t)} as \\spad{t} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)}; The options contained in the list \\spad{l} of the domain \\spad{DrawOption} are applied.")) (|draw| (((|ThreeDimensionalViewport|) (|ParametricSurface| (|Mapping| (|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|))) (|Segment| (|Float|)) (|Segment| (|Float|))) "\\spad{draw(surface(f,{}g,{}h),{}a..b,{}c..d)} draws the graph of the parametric surface \\spad{x = f(u,{}v)},{} \\spad{y = g(u,{}v)},{} \\spad{z = h(u,{}v)} as \\spad{u} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)} and \\spad{v} ranges from \\spad{min(c,{}d)} to \\spad{max(c,{}d)}.") (((|ThreeDimensionalViewport|) (|ParametricSurface| (|Mapping| (|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|))) (|Segment| (|Float|)) (|Segment| (|Float|)) (|List| (|DrawOption|))) "\\spad{draw(surface(f,{}g,{}h),{}a..b,{}c..d)} draws the graph of the parametric surface \\spad{x = f(u,{}v)},{} \\spad{y = g(u,{}v)},{} \\spad{z = h(u,{}v)} as \\spad{u} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)} and \\spad{v} ranges from \\spad{min(c,{}d)} to \\spad{max(c,{}d)}; The options contained in the list \\spad{l} of the domain \\spad{DrawOption} are applied.") (((|ThreeDimensionalViewport|) (|Mapping| (|Point| (|DoubleFloat|)) (|DoubleFloat|) (|DoubleFloat|)) (|Segment| (|Float|)) (|Segment| (|Float|))) "\\spad{draw(f,{}a..b,{}c..d)} draws the graph of the parametric surface \\spad{f(u,{}v)} as \\spad{u} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)} and \\spad{v} ranges from \\spad{min(c,{}d)} to \\spad{max(c,{}d)} The options contained in the list \\spad{l} of the domain \\spad{DrawOption} are applied.") (((|ThreeDimensionalViewport|) (|Mapping| (|Point| (|DoubleFloat|)) (|DoubleFloat|) (|DoubleFloat|)) (|Segment| (|Float|)) (|Segment| (|Float|)) (|List| (|DrawOption|))) "\\spad{draw(f,{}a..b,{}c..d)} draws the graph of the parametric surface \\spad{f(u,{}v)} as \\spad{u} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)} and \\spad{v} ranges from \\spad{min(c,{}d)} to \\spad{max(c,{}d)}. The options contained in the list \\spad{l} of the domain \\spad{DrawOption} are applied.") (((|ThreeDimensionalViewport|) (|Mapping| (|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|)) (|Segment| (|Float|)) (|Segment| (|Float|))) "\\spad{draw(f,{}a..b,{}c..d)} draws the graph of \\spad{z = f(x,{}y)} as \\spad{x} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)} and \\spad{y} ranges from \\spad{min(c,{}d)} to \\spad{max(c,{}d)}.") (((|ThreeDimensionalViewport|) (|Mapping| (|DoubleFloat|) (|DoubleFloat|) (|DoubleFloat|)) (|Segment| (|Float|)) (|Segment| (|Float|)) (|List| (|DrawOption|))) "\\spad{draw(f,{}a..b,{}c..d,{}l)} draws the graph of \\spad{z = f(x,{}y)} as \\spad{x} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)} and \\spad{y} ranges from \\spad{min(c,{}d)} to \\spad{max(c,{}d)}. and the options contained in the list \\spad{l} of the domain \\spad{DrawOption} are applied.") (((|ThreeDimensionalViewport|) (|Mapping| (|Point| (|DoubleFloat|)) (|DoubleFloat|)) (|Segment| (|Float|))) "\\spad{draw(f,{}a..b,{}l)} draws the graph of the parametric curve \\spad{f} as \\spad{t} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)}.") (((|ThreeDimensionalViewport|) (|Mapping| (|Point| (|DoubleFloat|)) (|DoubleFloat|)) (|Segment| (|Float|)) (|List| (|DrawOption|))) "\\spad{draw(f,{}a..b,{}l)} draws the graph of the parametric curve \\spad{f} as \\spad{t} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)}. The options contained in the list \\spad{l} of the domain \\spad{DrawOption} are applied.") (((|ThreeDimensionalViewport|) (|ParametricSpaceCurve| (|Mapping| (|DoubleFloat|) (|DoubleFloat|))) (|Segment| (|Float|))) "\\spad{draw(curve(f,{}g,{}h),{}a..b,{}l)} draws the graph of the parametric curve \\spad{x = f(t),{} y = g(t),{} z = h(t)} as \\spad{t} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)}.") (((|ThreeDimensionalViewport|) (|ParametricSpaceCurve| (|Mapping| (|DoubleFloat|) (|DoubleFloat|))) (|Segment| (|Float|)) (|List| (|DrawOption|))) "\\spad{draw(curve(f,{}g,{}h),{}a..b,{}l)} draws the graph of the parametric curve \\spad{x = f(t),{} y = g(t),{} z = h(t)} as \\spad{t} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)}. The options contained in the list \\spad{l} of the domain \\spad{DrawOption} are applied.") (((|TwoDimensionalViewport|) (|ParametricPlaneCurve| (|Mapping| (|DoubleFloat|) (|DoubleFloat|))) (|Segment| (|Float|))) "\\spad{draw(curve(f,{}g),{}a..b)} draws the graph of the parametric curve \\spad{x = f(t),{} y = g(t)} as \\spad{t} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)}.") (((|TwoDimensionalViewport|) (|ParametricPlaneCurve| (|Mapping| (|DoubleFloat|) (|DoubleFloat|))) (|Segment| (|Float|)) (|List| (|DrawOption|))) "\\spad{draw(curve(f,{}g),{}a..b,{}l)} draws the graph of the parametric curve \\spad{x = f(t),{} y = g(t)} as \\spad{t} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)}. The options contained in the list \\spad{l} of the domain \\spad{DrawOption} are applied.") (((|TwoDimensionalViewport|) (|Mapping| (|DoubleFloat|) (|DoubleFloat|)) (|Segment| (|Float|))) "\\spad{draw(f,{}a..b)} draws the graph of \\spad{y = f(x)} as \\spad{x} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)}.") (((|TwoDimensionalViewport|) (|Mapping| (|DoubleFloat|) (|DoubleFloat|)) (|Segment| (|Float|)) (|List| (|DrawOption|))) "\\spad{draw(f,{}a..b,{}l)} draws the graph of \\spad{y = f(x)} as \\spad{x} ranges from \\spad{min(a,{}b)} to \\spad{max(a,{}b)}. The options contained in the list \\spad{l} of the domain \\spad{DrawOption} are applied."))) 
@@ -958,15 +958,15 @@ NIL
 NIL 
 (-257 R S V) 
 ((|constructor| (NIL "\\spadtype{DifferentialSparseMultivariatePolynomial} implements an ordinary differential polynomial ring by combining a domain belonging to the category \\spadtype{DifferentialVariableCategory} with the domain \\spadtype{SparseMultivariatePolynomial}."))) 
-(((-4521 "*") |has| |#1| (-172)) (-4512 |has| |#1| (-558)) (-4517 |has| |#1| (-6 -4517)) (-4514 . T) (-4513 . T) (-4516 . T)) 
-((|HasCategory| |#1| (QUOTE (-904))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (-2198 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#3| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#3| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#3| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#3| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#3| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-225))) (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-365))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasAttribute| |#1| (QUOTE -4517)) (|HasCategory| |#1| (QUOTE (-453))) (-2198 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2198 (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2198 (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-148))))) 
+(((-4523 "*") |has| |#1| (-172)) (-4514 |has| |#1| (-558)) (-4519 |has| |#1| (-6 -4519)) (-4516 . T) (-4515 . T) (-4518 . T)) 
+((|HasCategory| |#1| (QUOTE (-904))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (-2199 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#3| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#3| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#3| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#3| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#3| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-225))) (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-365))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasAttribute| |#1| (QUOTE -4519)) (|HasCategory| |#1| (QUOTE (-453))) (-2199 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2199 (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2199 (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-148))))) 
 (-258 S) 
 ((|constructor| (NIL "This category is part of the PAFF package")) (|tree| (($ (|List| |#1|)) "\\spad{tree(l)} creates a chain tree from the list \\spad{l}") (($ |#1|) "\\spad{tree(nd)} creates a tree with value \\spad{nd},{} and no children") (($ |#1| (|List| $)) "\\spad{tree(nd,{}ls)} creates a tree with value \\spad{nd},{} and children \\spad{ls}."))) 
-((-4519 . T) (-4520 . T) (-3973 . T)) 
+((-4521 . T) (-4522 . T) (-3973 . T)) 
 NIL 
 (-259 S) 
 ((|constructor| (NIL "This category is part of the PAFF package")) (|fullOutput| (((|Boolean|)) "\\spad{fullOutput returns} the value of the flag set by fullOutput(\\spad{b}).") (((|Boolean|) (|Boolean|)) "\\spad{fullOutput(b)} sets a flag such that when \\spad{true},{} a coerce to OutputForm yields the full output of \\spad{tr},{} otherwise encode(\\spad{tr}) is output (see encode function). The default is \\spad{false}.")) (|fullOut| (((|OutputForm|) $) "\\spad{fullOut(tr)} yields a full output of \\spad{tr} (see function fullOutput).")) (|encode| (((|String|) $) "\\spad{encode(t)} returns a string indicating the \"shape\" of the tree"))) 
-((-4519 . T) (-4520 . T)) 
+((-4521 . T) (-4522 . T)) 
 ((|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090))))) 
 (-260 K |symb| |PolyRing| E |ProjPt| PCS |Plc| DIVISOR |InfClsPoint| |DesTree| BLMET) 
 ((|constructor| (NIL "\\indented{1}{The following is all the categories,{} domains and package} used for the desingularisation be means of monoidal transformation (Blowing-up)")) (|genusTreeNeg| (((|Integer|) (|NonNegativeInteger|) (|List| |#10|)) "\\spad{genusTreeNeg(n,{}listOfTrees)} computes the \"genus\" of a curve that may be not absolutly irreducible,{} where \\spad{n} is the degree of a polynomial pol defining the curve and \\spad{listOfTrees} is all the desingularisation trees at all singular points on the curve defined by pol. A \"negative\" genus means that the curve is reducible \\spad{!!}.")) (|genusTree| (((|NonNegativeInteger|) (|NonNegativeInteger|) (|List| |#10|)) "\\spad{genusTree(n,{}listOfTrees)} computes the genus of a curve,{} where \\spad{n} is the degree of a polynomial pol defining the curve and \\spad{listOfTrees} is all the desingularisation trees at all singular points on the curve defined by pol.")) (|genusNeg| (((|Integer|) |#3|) "\\spad{genusNeg(pol)} computes the \"genus\" of a curve that may be not absolutly irreducible. A \"negative\" genus means that the curve is reducible \\spad{!!}.")) (|genus| (((|NonNegativeInteger|) |#3|) "\\spad{genus(pol)} computes the genus of the curve defined by \\spad{pol}.")) (|initializeParamOfPlaces| (((|Void|) |#10| (|List| |#3|)) "initParLocLeaves(\\spad{tr},{}listOfFnc) initialize the local parametrization at places corresponding to the leaves of \\spad{tr} according to the given list of functions in listOfFnc.") (((|Void|) |#10|) "initParLocLeaves(\\spad{tr}) initialize the local parametrization at places corresponding to the leaves of \\spad{tr}.")) (|initParLocLeaves| (((|Void|) |#10|) "\\spad{initParLocLeaves(tr)} initialize the local parametrization at simple points corresponding to the leaves of \\spad{tr}.")) (|fullParamInit| (((|Void|) |#10|) "\\spad{fullParamInit(tr)} initialize the local parametrization at all places (leaves of \\spad{tr}),{} computes the local exceptional divisor at each infinytly close points in the tree. This function is equivalent to the following called: initParLocLeaves(\\spad{tr}) initializeParamOfPlaces(\\spad{tr}) blowUpWithExcpDiv(\\spad{tr})")) (|desingTree| (((|List| |#10|) |#3|) "\\spad{desingTree(pol)} returns all the desingularisation trees of all singular points on the curve defined by \\spad{pol}.")) (|desingTreeAtPoint| ((|#10| |#5| |#3|) "\\spad{desingTreeAtPoint(pt,{}pol)} computes the desingularisation tree at the point \\spad{pt} on the curve defined by \\spad{pol}. This function recursively compute the tree.")) (|adjunctionDivisor| ((|#8| |#10|) "\\spad{adjunctionDivisor(tr)} compute the local adjunction divisor of a desingularisation tree \\spad{tr} of a singular point.")) (|divisorAtDesingTree| ((|#8| |#3| |#10|) "\\spad{divisorAtDesingTree(f,{}tr)} computes the local divisor of \\spad{f} at a desingularisation tree \\spad{tr} of a singular point."))) 
@@ -1038,7 +1038,7 @@ NIL
 ((|HasCategory| |#2| (QUOTE (-842))) (|HasCategory| |#2| (QUOTE (-1090)))) 
 (-277 S) 
 ((|constructor| (NIL "An extensible aggregate is one which allows insertion and deletion of entries. These aggregates are models of lists and streams which are represented by linked structures so as to make insertion,{} deletion,{} and concatenation efficient. However,{} access to elements of these extensible aggregates is generally slow since access is made from the end. See \\spadtype{FlexibleArray} for an exception.")) (|removeDuplicates!| (($ $) "\\spad{removeDuplicates!(u)} destructively removes duplicates from \\spad{u}.")) (|select!| (($ (|Mapping| (|Boolean|) |#1|) $) "\\spad{select!(p,{}u)} destructively changes \\spad{u} by keeping only values \\spad{x} such that \\axiom{\\spad{p}(\\spad{x})}.")) (|merge!| (($ $ $) "\\spad{merge!(u,{}v)} destructively merges \\spad{u} and \\spad{v} in ascending order.") (($ (|Mapping| (|Boolean|) |#1| |#1|) $ $) "\\spad{merge!(p,{}u,{}v)} destructively merges \\spad{u} and \\spad{v} using predicate \\spad{p}.")) (|insert!| (($ $ $ (|Integer|)) "\\spad{insert!(v,{}u,{}i)} destructively inserts aggregate \\spad{v} into \\spad{u} at position \\spad{i}.") (($ |#1| $ (|Integer|)) "\\spad{insert!(x,{}u,{}i)} destructively inserts \\spad{x} into \\spad{u} at position \\spad{i}.")) (|remove!| (($ |#1| $) "\\spad{remove!(x,{}u)} destructively removes all values \\spad{x} from \\spad{u}.") (($ (|Mapping| (|Boolean|) |#1|) $) "\\spad{remove!(p,{}u)} destructively removes all elements \\spad{x} of \\spad{u} such that \\axiom{\\spad{p}(\\spad{x})} is \\spad{true}.")) (|delete!| (($ $ (|UniversalSegment| (|Integer|))) "\\spad{delete!(u,{}i..j)} destructively deletes elements \\spad{u}.\\spad{i} through \\spad{u}.\\spad{j}.") (($ $ (|Integer|)) "\\indented{1}{delete!(\\spad{u},{}\\spad{i}) destructively deletes the \\axiom{\\spad{i}}th element of \\spad{u}.} \\blankline \\spad{E} Data:=Record(age:Integer,{}gender:String) \\spad{E} a1:AssociationList(String,{}Data):=table() \\spad{E} \\spad{a1}.\"tim\":=[55,{}\"male\"]\\$Data \\spad{E} delete!(\\spad{a1},{}1)")) (|concat!| (($ $ $) "\\spad{concat!(u,{}v)} destructively appends \\spad{v} to the end of \\spad{u}. \\spad{v} is unchanged") (($ $ |#1|) "\\spad{concat!(u,{}x)} destructively adds element \\spad{x} to the end of \\spad{u}."))) 
-((-4520 . T) (-3973 . T)) 
+((-4522 . T) (-3973 . T)) 
 NIL 
 (-278 S) 
 ((|constructor| (NIL "Category for the elementary functions.")) (** (($ $ $) "\\spad{x**y} returns \\spad{x} to the power \\spad{y}.")) (|exp| (($ $) "\\spad{exp(x)} returns \\%\\spad{e} to the power \\spad{x}.")) (|log| (($ $) "\\spad{log(x)} returns the natural logarithm of \\spad{x}."))) 
@@ -1059,18 +1059,18 @@ NIL
 (-282 S |Dom| |Im|) 
 ((|constructor| (NIL "An eltable aggregate is one which can be viewed as a function. For example,{} the list \\axiom{[1,{}7,{}4]} can applied to 0,{}1,{} and 2 respectively will return the integers 1,{}7,{} and 4; thus this list may be viewed as mapping 0 to 1,{} 1 to 7 and 2 to 4. In general,{} an aggregate can map members of a domain Dom to an image domain Im.")) (|qsetelt!| ((|#3| $ |#2| |#3|) "\\spad{qsetelt!(u,{}x,{}y)} sets the image of \\axiom{\\spad{x}} to be \\axiom{\\spad{y}} under \\axiom{\\spad{u}},{} without checking that \\axiom{\\spad{x}} is in the domain of \\axiom{\\spad{u}}. If such a check is required use the function \\axiom{setelt}.")) (|setelt| ((|#3| $ |#2| |#3|) "\\spad{setelt(u,{}x,{}y)} sets the image of \\spad{x} to be \\spad{y} under \\spad{u},{} assuming \\spad{x} is in the domain of \\spad{u}. Error: if \\spad{x} is not in the domain of \\spad{u}.")) (|qelt| ((|#3| $ |#2|) "\\spad{qelt(u,{} x)} applies \\axiom{\\spad{u}} to \\axiom{\\spad{x}} without checking whether \\axiom{\\spad{x}} is in the domain of \\axiom{\\spad{u}}. If \\axiom{\\spad{x}} is not in the domain of \\axiom{\\spad{u}} a memory-access violation may occur. If a check on whether \\axiom{\\spad{x}} is in the domain of \\axiom{\\spad{u}} is required,{} use the function \\axiom{elt}.")) (|elt| ((|#3| $ |#2| |#3|) "\\spad{elt(u,{} x,{} y)} applies \\spad{u} to \\spad{x} if \\spad{x} is in the domain of \\spad{u},{} and returns \\spad{y} otherwise. For example,{} if \\spad{u} is a polynomial in \\axiom{\\spad{x}} over the rationals,{} \\axiom{elt(\\spad{u},{}\\spad{n},{}0)} may define the coefficient of \\axiom{\\spad{x}} to the power \\spad{n},{} returning 0 when \\spad{n} is out of range."))) 
 NIL 
-((|HasAttribute| |#1| (QUOTE -4520))) 
+((|HasAttribute| |#1| (QUOTE -4522))) 
 (-283 |Dom| |Im|) 
 ((|constructor| (NIL "An eltable aggregate is one which can be viewed as a function. For example,{} the list \\axiom{[1,{}7,{}4]} can applied to 0,{}1,{} and 2 respectively will return the integers 1,{}7,{} and 4; thus this list may be viewed as mapping 0 to 1,{} 1 to 7 and 2 to 4. In general,{} an aggregate can map members of a domain Dom to an image domain Im.")) (|qsetelt!| ((|#2| $ |#1| |#2|) "\\spad{qsetelt!(u,{}x,{}y)} sets the image of \\axiom{\\spad{x}} to be \\axiom{\\spad{y}} under \\axiom{\\spad{u}},{} without checking that \\axiom{\\spad{x}} is in the domain of \\axiom{\\spad{u}}. If such a check is required use the function \\axiom{setelt}.")) (|setelt| ((|#2| $ |#1| |#2|) "\\spad{setelt(u,{}x,{}y)} sets the image of \\spad{x} to be \\spad{y} under \\spad{u},{} assuming \\spad{x} is in the domain of \\spad{u}. Error: if \\spad{x} is not in the domain of \\spad{u}.")) (|qelt| ((|#2| $ |#1|) "\\spad{qelt(u,{} x)} applies \\axiom{\\spad{u}} to \\axiom{\\spad{x}} without checking whether \\axiom{\\spad{x}} is in the domain of \\axiom{\\spad{u}}. If \\axiom{\\spad{x}} is not in the domain of \\axiom{\\spad{u}} a memory-access violation may occur. If a check on whether \\axiom{\\spad{x}} is in the domain of \\axiom{\\spad{u}} is required,{} use the function \\axiom{elt}.")) (|elt| ((|#2| $ |#1| |#2|) "\\spad{elt(u,{} x,{} y)} applies \\spad{u} to \\spad{x} if \\spad{x} is in the domain of \\spad{u},{} and returns \\spad{y} otherwise. For example,{} if \\spad{u} is a polynomial in \\axiom{\\spad{x}} over the rationals,{} \\axiom{elt(\\spad{u},{}\\spad{n},{}0)} may define the coefficient of \\axiom{\\spad{x}} to the power \\spad{n},{} returning 0 when \\spad{n} is out of range."))) 
 NIL 
 NIL 
-(-284 S R |Mod| -3627 -1347 |exactQuo|) 
+(-284 S R |Mod| -3121 -3645 |exactQuo|) 
 ((|constructor| (NIL "These domains are used for the factorization and gcds of univariate polynomials over the integers in order to work modulo different primes. See \\spadtype{ModularRing},{} \\spadtype{ModularField}")) (|elt| ((|#2| $ |#2|) "\\spad{elt(x,{}r)} or \\spad{x}.\\spad{r} is not documented")) (|inv| (($ $) "\\spad{inv(x)} is not documented")) (|recip| (((|Union| $ "failed") $) "\\spad{recip(x)} is not documented")) (|exQuo| (((|Union| $ "failed") $ $) "\\spad{exQuo(x,{}y)} is not documented")) (|reduce| (($ |#2| |#3|) "\\spad{reduce(r,{}m)} is not documented")) (|coerce| ((|#2| $) "\\spad{coerce(x)} is not documented")) (|modulus| ((|#3| $) "\\spad{modulus(x)} is not documented"))) 
-((-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-285) 
 ((|constructor| (NIL "Entire Rings (non-commutative Integral Domains),{} \\spadignore{i.e.} a ring not necessarily commutative which has no zero divisors. \\blankline Axioms\\spad{\\br} \\tab{5}\\spad{ab=0 => a=0 or b=0} \\spad{--} known as noZeroDivisors\\spad{\\br} \\tab{5}\\spad{not(1=0)}")) (|noZeroDivisors| ((|attribute|) "if a product is zero then one of the factors must be zero."))) 
-((-4512 . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4514 . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-286 R) 
 ((|constructor| (NIL "This is a package for the exact computation of eigenvalues and eigenvectors. This package can be made to work for matrices with coefficients which are rational functions over a ring where we can factor polynomials. Rational eigenvalues are always explicitly computed while the non-rational ones are expressed in terms of their minimal polynomial.")) (|eigenvectors| (((|List| (|Record| (|:| |eigval| (|Union| (|Fraction| (|Polynomial| |#1|)) (|SuchThat| (|Symbol|) (|Polynomial| |#1|)))) (|:| |eigmult| (|NonNegativeInteger|)) (|:| |eigvec| (|List| (|Matrix| (|Fraction| (|Polynomial| |#1|))))))) (|Matrix| (|Fraction| (|Polynomial| |#1|)))) "\\spad{eigenvectors(m)} returns the eigenvalues and eigenvectors for the matrix \\spad{m}. The rational eigenvalues and the correspondent eigenvectors are explicitely computed,{} while the non rational ones are given via their minimal polynomial and the corresponding eigenvectors are expressed in terms of a \"generic\" root of such a polynomial.")) (|generalizedEigenvectors| (((|List| (|Record| (|:| |eigval| (|Union| (|Fraction| (|Polynomial| |#1|)) (|SuchThat| (|Symbol|) (|Polynomial| |#1|)))) (|:| |geneigvec| (|List| (|Matrix| (|Fraction| (|Polynomial| |#1|))))))) (|Matrix| (|Fraction| (|Polynomial| |#1|)))) "\\spad{generalizedEigenvectors(m)} returns the generalized eigenvectors of the matrix \\spad{m}.")) (|generalizedEigenvector| (((|List| (|Matrix| (|Fraction| (|Polynomial| |#1|)))) (|Record| (|:| |eigval| (|Union| (|Fraction| (|Polynomial| |#1|)) (|SuchThat| (|Symbol|) (|Polynomial| |#1|)))) (|:| |eigmult| (|NonNegativeInteger|)) (|:| |eigvec| (|List| (|Matrix| (|Fraction| (|Polynomial| |#1|)))))) (|Matrix| (|Fraction| (|Polynomial| |#1|)))) "\\spad{generalizedEigenvector(eigen,{}m)} returns the generalized eigenvectors of the matrix relative to the eigenvalue \\spad{eigen},{} as returned by the function eigenvectors.") (((|List| (|Matrix| (|Fraction| (|Polynomial| |#1|)))) (|Union| (|Fraction| (|Polynomial| |#1|)) (|SuchThat| (|Symbol|) (|Polynomial| |#1|))) (|Matrix| (|Fraction| (|Polynomial| |#1|))) (|NonNegativeInteger|) (|NonNegativeInteger|)) "\\spad{generalizedEigenvector(alpha,{}m,{}k,{}g)} returns the generalized eigenvectors of the matrix relative to the eigenvalue \\spad{alpha}. The integers \\spad{k} and \\spad{g} are respectively the algebraic and the geometric multiplicity of tye eigenvalue \\spad{alpha}. \\spad{alpha} can be either rational or not. In the seconda case apha is the minimal polynomial of the eigenvalue.")) (|eigenvector| (((|List| (|Matrix| (|Fraction| (|Polynomial| |#1|)))) (|Union| (|Fraction| (|Polynomial| |#1|)) (|SuchThat| (|Symbol|) (|Polynomial| |#1|))) (|Matrix| (|Fraction| (|Polynomial| |#1|)))) "\\spad{eigenvector(eigval,{}m)} returns the eigenvectors belonging to the eigenvalue \\spad{eigval} for the matrix \\spad{m}.")) (|eigenvalues| (((|List| (|Union| (|Fraction| (|Polynomial| |#1|)) (|SuchThat| (|Symbol|) (|Polynomial| |#1|)))) (|Matrix| (|Fraction| (|Polynomial| |#1|)))) "\\spad{eigenvalues(m)} returns the eigenvalues of the matrix \\spad{m} which are expressible as rational functions over the rational numbers.")) (|characteristicPolynomial| (((|Polynomial| |#1|) (|Matrix| (|Fraction| (|Polynomial| |#1|)))) "\\spad{characteristicPolynomial(m)} returns the characteristicPolynomial of the matrix \\spad{m} using a new generated symbol symbol as the main variable.") (((|Polynomial| |#1|) (|Matrix| (|Fraction| (|Polynomial| |#1|))) (|Symbol|)) "\\spad{characteristicPolynomial(m,{}var)} returns the characteristicPolynomial of the matrix \\spad{m} using the symbol \\spad{var} as the main variable."))) 
@@ -1082,12 +1082,12 @@ NIL
 NIL 
 (-288 S) 
 ((|constructor| (NIL "Equations as mathematical objects. All properties of the basis domain,{} \\spadignore{e.g.} being an abelian group are carried over the equation domain,{} by performing the structural operations on the left and on the right hand side.")) (|subst| (($ $ $) "\\spad{subst(eq1,{}eq2)} substitutes \\spad{eq2} into both sides of \\spad{eq1} the \\spad{lhs} of \\spad{eq2} should be a kernel")) (|inv| (($ $) "\\spad{inv(x)} returns the multiplicative inverse of \\spad{x}.")) (/ (($ $ $) "\\spad{e1/e2} produces a new equation by dividing the left and right hand sides of equations \\spad{e1} and \\spad{e2}.")) (|factorAndSplit| (((|List| $) $) "\\spad{factorAndSplit(eq)} make the right hand side 0 and factors the new left hand side. Each factor is equated to 0 and put into the resulting list without repetitions.")) (|rightOne| (((|Union| $ "failed") $) "\\spad{rightOne(eq)} divides by the right hand side.") (((|Union| $ "failed") $) "\\spad{rightOne(eq)} divides by the right hand side,{} if possible.")) (|leftOne| (((|Union| $ "failed") $) "\\spad{leftOne(eq)} divides by the left hand side.") (((|Union| $ "failed") $) "\\spad{leftOne(eq)} divides by the left hand side,{} if possible.")) (* (($ $ |#1|) "\\spad{eqn*x} produces a new equation by multiplying both sides of equation eqn by \\spad{x}.") (($ |#1| $) "\\spad{x*eqn} produces a new equation by multiplying both sides of equation eqn by \\spad{x}.")) (- (($ $ |#1|) "\\spad{eqn-x} produces a new equation by subtracting \\spad{x} from both sides of equation eqn.") (($ |#1| $) "\\spad{x-eqn} produces a new equation by subtracting both sides of equation eqn from \\spad{x}.")) (|rightZero| (($ $) "\\spad{rightZero(eq)} subtracts the right hand side.")) (|leftZero| (($ $) "\\spad{leftZero(eq)} subtracts the left hand side.")) (+ (($ $ |#1|) "\\spad{eqn+x} produces a new equation by adding \\spad{x} to both sides of equation eqn.") (($ |#1| $) "\\spad{x+eqn} produces a new equation by adding \\spad{x} to both sides of equation eqn.")) (|eval| (($ $ (|List| $)) "\\spad{eval(eqn,{} [x1=v1,{} ... xn=vn])} replaces \\spad{xi} by \\spad{vi} in equation \\spad{eqn}.") (($ $ $) "\\spad{eval(eqn,{} x=f)} replaces \\spad{x} by \\spad{f} in equation \\spad{eqn}.")) (|map| (($ (|Mapping| |#1| |#1|) $) "\\spad{map(f,{}eqn)} constructs a new equation by applying \\spad{f} to both sides of \\spad{eqn}.")) (|rhs| ((|#1| $) "\\spad{rhs(eqn)} returns the right hand side of equation \\spad{eqn}.")) (|lhs| ((|#1| $) "\\spad{lhs(eqn)} returns the left hand side of equation \\spad{eqn}.")) (|swap| (($ $) "\\spad{swap(eq)} interchanges left and right hand side of equation \\spad{eq}.")) (|equation| (($ |#1| |#1|) "\\spad{equation(a,{}b)} creates an equation.")) (= (($ |#1| |#1|) "\\spad{a=b} creates an equation."))) 
-((-4516 -2198 (|has| |#1| (-1047)) (|has| |#1| (-478))) (-4513 |has| |#1| (-1047)) (-4514 |has| |#1| (-1047))) 
-((|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (QUOTE (-1047))) (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-1047)))) (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (LIST (QUOTE -523) (QUOTE (-1161)) (|devaluate| |#1|))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-296))) (-2198 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-478)))) (-2198 (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (QUOTE (-1047)))) (|HasCategory| |#1| (QUOTE (-172))) (-2198 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-1047)))) (-2198 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365)))) (|HasCategory| |#1| (QUOTE (-716))) (-2198 (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (QUOTE (-716)))) (|HasCategory| |#1| (QUOTE (-1102))) (-2198 (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (QUOTE (-716))) (|HasCategory| |#1| (QUOTE (-1102)))) (|HasCategory| |#1| (QUOTE (-21))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-1047)))) (-2198 (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-716)))) (|HasCategory| |#1| (QUOTE (-25))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-25))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-1047)))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-25))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (QUOTE (-716))) (|HasCategory| |#1| (QUOTE (-1047))) (|HasCategory| |#1| (QUOTE (-1102))) (|HasCategory| |#1| (QUOTE (-1090))))) 
+((-4518 -2199 (|has| |#1| (-1047)) (|has| |#1| (-478))) (-4515 |has| |#1| (-1047)) (-4516 |has| |#1| (-1047))) 
+((|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (QUOTE (-1047))) (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-1047)))) (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (LIST (QUOTE -523) (QUOTE (-1161)) (|devaluate| |#1|))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-296))) (-2199 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-478)))) (-2199 (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (QUOTE (-1047)))) (|HasCategory| |#1| (QUOTE (-172))) (-2199 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-1047)))) (-2199 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365)))) (|HasCategory| |#1| (QUOTE (-716))) (-2199 (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (QUOTE (-716)))) (|HasCategory| |#1| (QUOTE (-1102))) (-2199 (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (QUOTE (-716))) (|HasCategory| |#1| (QUOTE (-1102)))) (|HasCategory| |#1| (QUOTE (-21))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-1047)))) (-2199 (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-716)))) (|HasCategory| |#1| (QUOTE (-25))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-25))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-1047)))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-25))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (QUOTE (-716))) (|HasCategory| |#1| (QUOTE (-1047))) (|HasCategory| |#1| (QUOTE (-1102))) (|HasCategory| |#1| (QUOTE (-1090))))) 
 (-289 |Key| |Entry|) 
 ((|constructor| (NIL "This domain provides tables where the keys are compared using \\spadfun{eq?}. Thus keys are considered equal only if they are the same instance of a structure."))) 
-((-4519 . T) (-4520 . T)) 
-((|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-1090))) (-12 (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3649) (|devaluate| |#1|)) (LIST (QUOTE |:|) (QUOTE -4083) (|devaluate| |#2|))))) (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#2| (QUOTE (-1090))) (-2198 (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-1090)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090))))) 
+((-4521 . T) (-4522 . T)) 
+((|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-1090))) (-12 (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3651) (|devaluate| |#1|)) (LIST (QUOTE |:|) (QUOTE -4085) (|devaluate| |#2|))))) (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#2| (QUOTE (-1090))) (-2199 (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-1090)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090))))) 
 (-290) 
 ((|constructor| (NIL "ErrorFunctions implements error functions callable from the system interpreter. Typically,{} these functions would be called in user functions. The simple forms of the functions take one argument which is either a string (an error message) or a list of strings which all together make up a message. The list can contain formatting codes (see below). The more sophisticated versions takes two arguments where the first argument is the name of the function from which the error was invoked and the second argument is either a string or a list of strings,{} as above. When you use the one argument version in an interpreter function,{} the system will automatically insert the name of the function as the new first argument. Thus in the user interpreter function\\spad{\\br} \\tab{5}\\spad{f x == if x < 0 then error \"negative argument\" else x}\\spad{\\br} the call to error will actually be of the form\\spad{\\br} \\tab{5}\\spad{error(\"f\",{}\"negative argument\")}\\spad{\\br} because the interpreter will have created a new first argument. \\blankline Formatting codes: error messages may contain the following formatting codes (they should either start or end a string or else have blanks around them):\\spad{\\br} \\spad{\\%l}\\tab{6}start a new line\\spad{\\br} \\spad{\\%b}\\tab{6}start printing in a bold font (where available)\\spad{\\br} \\spad{\\%d}\\tab{6}stop printing in a bold font (where available)\\spad{\\br} \\spad{\\%ceon}\\tab{3}start centering message lines\\spad{\\br} \\spad{\\%ceoff}\\tab{2}stop centering message lines\\spad{\\br} \\spad{\\%rjon}\\tab{3}start displaying lines \"ragged left\"\\spad{\\br} \\spad{\\%rjoff}\\tab{2}stop displaying lines \"ragged left\"\\spad{\\br} \\spad{\\%i}\\tab{6}indent following lines 3 additional spaces\\spad{\\br} \\spad{\\%u}\\tab{6}unindent following lines 3 additional spaces\\spad{\\br} \\spad{\\%xN}\\tab{5}insert \\spad{N} blanks (eg,{} \\spad{\\%x10} inserts 10 blanks) \\blankline")) (|error| (((|Exit|) (|String|) (|List| (|String|))) "\\spad{error(nam,{}lmsg)} displays error messages \\spad{lmsg} preceded by a message containing the name \\spad{nam} of the function in which the error is contained.") (((|Exit|) (|String|) (|String|)) "\\spad{error(nam,{}msg)} displays error message \\spad{msg} preceded by a message containing the name \\spad{nam} of the function in which the error is contained.") (((|Exit|) (|List| (|String|))) "\\spad{error(lmsg)} displays error message \\spad{lmsg} and terminates.") (((|Exit|) (|String|)) "\\spad{error(msg)} displays error message \\spad{msg} and terminates."))) 
 NIL 
@@ -1134,7 +1134,7 @@ NIL
 NIL 
 (-301) 
 ((|constructor| (NIL "A constructive euclidean domain,{} \\spadignore{i.e.} one can divide producing a quotient and a remainder where the remainder is either zero or is smaller (\\spadfun{euclideanSize}) than the divisor. \\blankline Conditional attributes\\spad{\\br} \\tab{5}multiplicativeValuation\\tab{5}Size(a*b)=Size(a)*Size(\\spad{b})\\spad{\\br} \\tab{5}additiveValuation\\tab{11}Size(a*b)=Size(a)+Size(\\spad{b})")) (|multiEuclidean| (((|Union| (|List| $) "failed") (|List| $) $) "\\spad{multiEuclidean([f1,{}...,{}fn],{}z)} returns a list of coefficients \\spad{[a1,{} ...,{} an]} such that \\spad{ z / prod \\spad{fi} = sum aj/fj}. If no such list of coefficients exists,{} \"failed\" is returned.")) (|extendedEuclidean| (((|Union| (|Record| (|:| |coef1| $) (|:| |coef2| $)) "failed") $ $ $) "\\spad{extendedEuclidean(x,{}y,{}z)} either returns a record rec where \\spad{rec.coef1*x+rec.coef2*y=z} or returns \"failed\" if \\spad{z} cannot be expressed as a linear combination of \\spad{x} and \\spad{y}.") (((|Record| (|:| |coef1| $) (|:| |coef2| $) (|:| |generator| $)) $ $) "\\spad{extendedEuclidean(x,{}y)} returns a record rec where \\spad{rec.coef1*x+rec.coef2*y = rec.generator} and rec.generator is a \\spad{gcd} of \\spad{x} and \\spad{y}. The \\spad{gcd} is unique only up to associates if \\spadatt{canonicalUnitNormal} is not asserted. \\spadfun{principalIdeal} provides a version of this operation which accepts an arbitrary length list of arguments.")) (|rem| (($ $ $) "\\spad{x rem y} is the same as \\spad{divide(x,{}y).remainder}. See \\spadfunFrom{divide}{EuclideanDomain}.")) (|quo| (($ $ $) "\\spad{x quo y} is the same as \\spad{divide(x,{}y).quotient}. See \\spadfunFrom{divide}{EuclideanDomain}.")) (|divide| (((|Record| (|:| |quotient| $) (|:| |remainder| $)) $ $) "\\spad{divide(x,{}y)} divides \\spad{x} by \\spad{y} producing a record containing a \\spad{quotient} and \\spad{remainder},{} where the remainder is smaller (see \\spadfunFrom{sizeLess?}{EuclideanDomain}) than the divisor \\spad{y}.")) (|euclideanSize| (((|NonNegativeInteger|) $) "\\spad{euclideanSize(x)} returns the euclidean size of the element \\spad{x}. Error: if \\spad{x} is zero.")) (|sizeLess?| (((|Boolean|) $ $) "\\spad{sizeLess?(x,{}y)} tests whether \\spad{x} is strictly smaller than \\spad{y} with respect to the \\spadfunFrom{euclideanSize}{EuclideanDomain}."))) 
-((-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-302 S R) 
 ((|constructor| (NIL "This category provides \\spadfun{eval} operations. A domain may belong to this category if it is possible to make ``evaluation\\spad{''} substitutions.")) (|eval| (($ $ (|List| (|Equation| |#2|))) "\\spad{eval(f,{} [x1 = v1,{}...,{}xn = vn])} replaces \\spad{xi} by \\spad{vi} in \\spad{f}.") (($ $ (|Equation| |#2|)) "\\spad{eval(f,{}x = v)} replaces \\spad{x} by \\spad{v} in \\spad{f}."))) 
@@ -1158,8 +1158,8 @@ NIL
 NIL 
 (-307 R FE |var| |cen|) 
 ((|constructor| (NIL "UnivariatePuiseuxSeriesWithExponentialSingularity is a domain used to represent essential singularities of functions. Objects in this domain are quotients of sums,{} where each term in the sum is a univariate Puiseux series times the exponential of a univariate Puiseux series.")) (|coerce| (($ (|UnivariatePuiseuxSeries| |#2| |#3| |#4|)) "\\spad{coerce(f)} converts a \\spadtype{UnivariatePuiseuxSeries} to an \\spadtype{ExponentialExpansion}.")) (|limitPlus| (((|Union| (|OrderedCompletion| |#2|) "failed") $) "\\spad{limitPlus(f(var))} returns \\spad{limit(var -> a+,{}f(var))}."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-904))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-148))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-150))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-1021))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-815))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-1136))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-225))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -523) (QUOTE (-1161)) (LIST (QUOTE -1229) (|devaluate| |#1|) (|devaluate| |#2|) (|devaluate| |#3|) (|devaluate| |#4|)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -303) (LIST (QUOTE -1229) (|devaluate| |#1|) (|devaluate| |#2|) (|devaluate| |#3|) (|devaluate| |#4|)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -281) (LIST (QUOTE -1229) (|devaluate| |#1|) (|devaluate| |#2|) (|devaluate| |#3|) (|devaluate| |#4|)) (LIST (QUOTE -1229) (|devaluate| |#1|) (|devaluate| |#2|) (|devaluate| |#3|) (|devaluate| |#4|)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-301))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-550))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-842))) (-2198 (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-815))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-842)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-904)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-148))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-904))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-148))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-150))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-1021))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-815))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-1136))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-225))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -523) (QUOTE (-1161)) (LIST (QUOTE -1229) (|devaluate| |#1|) (|devaluate| |#2|) (|devaluate| |#3|) (|devaluate| |#4|)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -303) (LIST (QUOTE -1229) (|devaluate| |#1|) (|devaluate| |#2|) (|devaluate| |#3|) (|devaluate| |#4|)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (LIST (QUOTE -281) (LIST (QUOTE -1229) (|devaluate| |#1|) (|devaluate| |#2|) (|devaluate| |#3|) (|devaluate| |#4|)) (LIST (QUOTE -1229) (|devaluate| |#1|) (|devaluate| |#2|) (|devaluate| |#3|) (|devaluate| |#4|)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-301))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-550))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-842))) (-2199 (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-815))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-842)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-904)))) (|HasCategory| (-1229 |#1| |#2| |#3| |#4|) (QUOTE (-148))))) 
 (-308 R S) 
 ((|constructor| (NIL "Lifting of maps to Expressions.")) (|map| (((|Expression| |#2|) (|Mapping| |#2| |#1|) (|Expression| |#1|)) "\\spad{map(f,{} e)} applies \\spad{f} to all the constants appearing in \\spad{e}."))) 
 NIL 
@@ -1170,8 +1170,8 @@ NIL
 NIL 
 (-310 R) 
 ((|constructor| (NIL "Top-level mathematical expressions involving symbolic functions.")) (|squareFreePolynomial| (((|Factored| (|SparseUnivariatePolynomial| $)) (|SparseUnivariatePolynomial| $)) "\\spad{squareFreePolynomial(p)} is not documented")) (|factorPolynomial| (((|Factored| (|SparseUnivariatePolynomial| $)) (|SparseUnivariatePolynomial| $)) "\\spad{factorPolynomial(p)} is not documented")) (|simplifyPower| (($ $ (|Integer|)) "simplifyPower?(\\spad{f},{}\\spad{n}) is not documented")) (|number?| (((|Boolean|) $) "\\spad{number?(f)} tests if \\spad{f} is rational")) (|reduce| (($ $) "\\spad{reduce(f)} simplifies all the unreduced algebraic quantities present in \\spad{f} by applying their defining relations."))) 
-((-4516 -2198 (-2139 (|has| |#1| (-1047)) (|has| |#1| (-630 (-568)))) (-12 (|has| |#1| (-558)) (-2198 (-2139 (|has| |#1| (-1047)) (|has| |#1| (-630 (-568)))) (|has| |#1| (-1047)) (|has| |#1| (-478)))) (|has| |#1| (-1047)) (|has| |#1| (-478))) (-4514 |has| |#1| (-172)) (-4513 |has| |#1| (-172)) ((-4521 "*") |has| |#1| (-558)) (-4512 |has| |#1| (-558)) (-4517 |has| |#1| (-558)) (-4511 |has| |#1| (-558))) 
-((|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-1047))) (-2198 (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-1047)))) (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-558)))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-1047)))) (-12 (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558)))) (-2198 (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (QUOTE (-558)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-1047)))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-1047)))) (-2198 (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (QUOTE (-1047)))) (|HasCategory| |#1| (QUOTE (-21))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-1047)))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-1047)))) (|HasCategory| |#1| (QUOTE (-21)))) (|HasCategory| |#1| (QUOTE (-25))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-25))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-1047)))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-1047)))) (|HasCategory| |#1| (QUOTE (-25)))) (|HasCategory| |#1| (QUOTE (-1102))) (-2198 (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (QUOTE (-1102)))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-1047)))) (|HasCategory| |#1| (QUOTE (-1102)))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-1047)))) (|HasCategory| |#1| (QUOTE (-25))) (|HasCategory| |#1| (QUOTE (-1102)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-558))))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-558)))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-558)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-558))))) (|HasCategory| $ (QUOTE (-1047))) (|HasCategory| $ (LIST (QUOTE -1037) (QUOTE (-568))))) 
+((-4518 -2199 (-2141 (|has| |#1| (-1047)) (|has| |#1| (-630 (-568)))) (-12 (|has| |#1| (-558)) (-2199 (-2141 (|has| |#1| (-1047)) (|has| |#1| (-630 (-568)))) (|has| |#1| (-1047)) (|has| |#1| (-478)))) (|has| |#1| (-1047)) (|has| |#1| (-478))) (-4516 |has| |#1| (-172)) (-4515 |has| |#1| (-172)) ((-4523 "*") |has| |#1| (-558)) (-4514 |has| |#1| (-558)) (-4519 |has| |#1| (-558)) (-4513 |has| |#1| (-558))) 
+((|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-1047))) (-2199 (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-1047)))) (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-558)))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-1047)))) (-12 (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558)))) (-2199 (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (QUOTE (-558)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-1047)))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-1047)))) (-2199 (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (QUOTE (-1047)))) (|HasCategory| |#1| (QUOTE (-21))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-1047)))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-1047)))) (|HasCategory| |#1| (QUOTE (-21)))) (|HasCategory| |#1| (QUOTE (-25))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-25))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-1047)))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-1047)))) (|HasCategory| |#1| (QUOTE (-25)))) (|HasCategory| |#1| (QUOTE (-1102))) (-2199 (|HasCategory| |#1| (QUOTE (-478))) (|HasCategory| |#1| (QUOTE (-1102)))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-1047)))) (|HasCategory| |#1| (QUOTE (-1102)))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-1047)))) (|HasCategory| |#1| (QUOTE (-25))) (|HasCategory| |#1| (QUOTE (-1102)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-558))))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-558)))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-558)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-558))))) (|HasCategory| $ (QUOTE (-1047))) (|HasCategory| $ (LIST (QUOTE -1037) (QUOTE (-568))))) 
 (-311 R -1478) 
 ((|constructor| (NIL "Taylor series solutions of explicit ODE\\spad{'s}.")) (|seriesSolve| (((|Any|) |#2| (|BasicOperator|) (|Equation| |#2|) (|List| |#2|)) "\\spad{seriesSolve(eq,{} y,{} x = a,{} [b0,{}...,{}bn])} is equivalent to \\spad{seriesSolve(eq = 0,{} y,{} x = a,{} [b0,{}...,{}b(n-1)])}.") (((|Any|) |#2| (|BasicOperator|) (|Equation| |#2|) (|Equation| |#2|)) "\\spad{seriesSolve(eq,{} y,{} x = a,{} y a = b)} is equivalent to \\spad{seriesSolve(eq=0,{} y,{} x=a,{} y a = b)}.") (((|Any|) |#2| (|BasicOperator|) (|Equation| |#2|) |#2|) "\\spad{seriesSolve(eq,{} y,{} x = a,{} b)} is equivalent to \\spad{seriesSolve(eq = 0,{} y,{} x = a,{} y a = b)}.") (((|Any|) (|Equation| |#2|) (|BasicOperator|) (|Equation| |#2|) |#2|) "\\spad{seriesSolve(eq,{}y,{} x=a,{} b)} is equivalent to \\spad{seriesSolve(eq,{} y,{} x=a,{} y a = b)}.") (((|Any|) (|List| |#2|) (|List| (|BasicOperator|)) (|Equation| |#2|) (|List| (|Equation| |#2|))) "seriesSolve([\\spad{eq1},{}...,{}eqn],{} [\\spad{y1},{}...,{}\\spad{yn}],{} \\spad{x} = a,{}[\\spad{y1} a = \\spad{b1},{}...,{} \\spad{yn} a = \\spad{bn}]) is equivalent to \\spad{seriesSolve([eq1=0,{}...,{}eqn=0],{} [y1,{}...,{}yn],{} x = a,{} [y1 a = b1,{}...,{} yn a = bn])}.") (((|Any|) (|List| |#2|) (|List| (|BasicOperator|)) (|Equation| |#2|) (|List| |#2|)) "\\spad{seriesSolve([eq1,{}...,{}eqn],{} [y1,{}...,{}yn],{} x=a,{} [b1,{}...,{}bn])} is equivalent to \\spad{seriesSolve([eq1=0,{}...,{}eqn=0],{} [y1,{}...,{}yn],{} x=a,{} [b1,{}...,{}bn])}.") (((|Any|) (|List| (|Equation| |#2|)) (|List| (|BasicOperator|)) (|Equation| |#2|) (|List| |#2|)) "\\spad{seriesSolve([eq1,{}...,{}eqn],{} [y1,{}...,{}yn],{} x=a,{} [b1,{}...,{}bn])} is equivalent to \\spad{seriesSolve([eq1,{}...,{}eqn],{} [y1,{}...,{}yn],{} x = a,{} [y1 a = b1,{}...,{} yn a = bn])}.") (((|Any|) (|List| (|Equation| |#2|)) (|List| (|BasicOperator|)) (|Equation| |#2|) (|List| (|Equation| |#2|))) "\\spad{seriesSolve([eq1,{}...,{}eqn],{}[y1,{}...,{}yn],{}x = a,{}[y1 a = b1,{}...,{}yn a = bn])} returns a taylor series solution of \\spad{[eq1,{}...,{}eqn]} around \\spad{x = a} with initial conditions \\spad{\\spad{yi}(a) = \\spad{bi}}. Note that eqi must be of the form \\spad{\\spad{fi}(x,{} y1 x,{} y2 x,{}...,{} yn x) y1'(x) + \\spad{gi}(x,{} y1 x,{} y2 x,{}...,{} yn x) = h(x,{} y1 x,{} y2 x,{}...,{} yn x)}.") (((|Any|) (|Equation| |#2|) (|BasicOperator|) (|Equation| |#2|) (|List| |#2|)) "\\spad{seriesSolve(eq,{}y,{}x=a,{}[b0,{}...,{}b(n-1)])} returns a Taylor series solution of \\spad{eq} around \\spad{x = a} with initial conditions \\spad{y(a) = b0},{} \\spad{y'(a) = b1},{} \\spad{y''(a) = b2},{} ...,{}\\spad{y(n-1)(a) = b(n-1)} \\spad{eq} must be of the form \\spad{f(x,{} y x,{} y'(x),{}...,{} y(n-1)(x)) y(n)(x) + g(x,{}y x,{}y'(x),{}...,{}y(n-1)(x)) = h(x,{}y x,{} y'(x),{}...,{} y(n-1)(x))}.") (((|Any|) (|Equation| |#2|) (|BasicOperator|) (|Equation| |#2|) (|Equation| |#2|)) "\\spad{seriesSolve(eq,{}y,{}x=a,{} y a = b)} returns a Taylor series solution of \\spad{eq} around \\spad{x} = a with initial condition \\spad{y(a) = b}. Note that \\spad{eq} must be of the form \\spad{f(x,{} y x) y'(x) + g(x,{} y x) = h(x,{} y x)}."))) 
 NIL 
@@ -1186,8 +1186,8 @@ NIL
 NIL 
 (-314 FE |var| |cen|) 
 ((|constructor| (NIL "ExponentialOfUnivariatePuiseuxSeries is a domain used to represent essential singularities of functions. An object in this domain is a function of the form \\spad{exp(f(x))},{} where \\spad{f(x)} is a Puiseux series with no terms of non-negative degree. Objects are ordered according to order of singularity,{} with functions which tend more rapidly to zero or infinity considered to be larger. Thus,{} if \\spad{order(f(x)) < order(g(x))},{} \\spadignore{i.e.} the first non-zero term of \\spad{f(x)} has lower degree than the first non-zero term of \\spad{g(x)},{} then \\spad{exp(f(x)) > exp(g(x))}. If \\spad{order(f(x)) = order(g(x))},{} then the ordering is essentially random. This domain is used in computing limits involving functions with essential singularities.")) (|exponentialOrder| (((|Fraction| (|Integer|)) $) "\\spad{exponentialOrder(exp(c * x **(-n) + ...))} returns \\spad{-n}. exponentialOrder(0) returns \\spad{0}.")) (|exponent| (((|UnivariatePuiseuxSeries| |#1| |#2| |#3|) $) "\\spad{exponent(exp(f(x)))} returns \\spad{f(x)}")) (|exponential| (($ (|UnivariatePuiseuxSeries| |#1| |#2| |#3|)) "\\spad{exponential(f(x))} returns \\spad{exp(f(x))}. Note: the function does NOT check that \\spad{f(x)} has no non-negative terms."))) 
-(((-4521 "*") |has| |#1| (-172)) (-4512 |has| |#1| (-558)) (-4517 |has| |#1| (-365)) (-4511 |has| |#1| (-365)) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (-2198 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558)))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasSignature| |#1| (LIST (QUOTE *) (LIST (|devaluate| |#1|) (LIST (QUOTE -409) (QUOTE (-568))) (|devaluate| |#1|)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasSignature| |#1| (LIST (QUOTE *) (LIST (|devaluate| |#1|) (LIST (QUOTE -409) (QUOTE (-568))) (|devaluate| |#1|))))) (|HasCategory| (-409 (-568)) (QUOTE (-1102))) (|HasCategory| |#1| (QUOTE (-365))) (-2198 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-558)))) (-2198 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-558)))) (|HasSignature| |#1| (LIST (QUOTE **) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasSignature| |#1| (LIST (QUOTE **) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasSignature| |#1| (LIST (QUOTE -2745) (LIST (|devaluate| |#1|) (QUOTE (-1161)))))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -29) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-959))) (|HasCategory| |#1| (QUOTE (-1181)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasSignature| |#1| (LIST (QUOTE -3837) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (QUOTE (-1161))))) (|HasSignature| |#1| (LIST (QUOTE -2055) (LIST (LIST (QUOTE -634) (QUOTE (-1161))) (|devaluate| |#1|))))))) 
+(((-4523 "*") |has| |#1| (-172)) (-4514 |has| |#1| (-558)) (-4519 |has| |#1| (-365)) (-4513 |has| |#1| (-365)) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (-2199 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558)))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasSignature| |#1| (LIST (QUOTE *) (LIST (|devaluate| |#1|) (LIST (QUOTE -409) (QUOTE (-568))) (|devaluate| |#1|)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasSignature| |#1| (LIST (QUOTE *) (LIST (|devaluate| |#1|) (LIST (QUOTE -409) (QUOTE (-568))) (|devaluate| |#1|))))) (|HasCategory| (-409 (-568)) (QUOTE (-1102))) (|HasCategory| |#1| (QUOTE (-365))) (-2199 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-558)))) (-2199 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-558)))) (|HasSignature| |#1| (LIST (QUOTE **) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasSignature| |#1| (LIST (QUOTE **) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasSignature| |#1| (LIST (QUOTE -2747) (LIST (|devaluate| |#1|) (QUOTE (-1161)))))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -29) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-959))) (|HasCategory| |#1| (QUOTE (-1181)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasSignature| |#1| (LIST (QUOTE -1845) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (QUOTE (-1161))))) (|HasSignature| |#1| (LIST (QUOTE -2057) (LIST (LIST (QUOTE -634) (QUOTE (-1161))) (|devaluate| |#1|))))))) 
 (-315 K) 
 ((|constructor| (NIL "Part of the Package for Algebraic Function Fields in one variable PAFF"))) 
 NIL 
@@ -1206,7 +1206,7 @@ NIL
 NIL 
 (-319 S) 
 ((|constructor| (NIL "The free abelian group on a set \\spad{S} is the monoid of finite sums of the form \\spad{reduce(+,{}[\\spad{ni} * \\spad{si}])} where the \\spad{si}\\spad{'s} are in \\spad{S},{} and the \\spad{ni}\\spad{'s} are integers. The operation is commutative."))) 
-((-4514 . T) (-4513 . T)) 
+((-4516 . T) (-4515 . T)) 
 ((|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| (-568) (QUOTE (-787)))) 
 (-320 S E) 
 ((|constructor| (NIL "A free abelian monoid on a set \\spad{S} is the monoid of finite sums of the form \\spad{reduce(+,{}[\\spad{ni} * \\spad{si}])} where the \\spad{si}\\spad{'s} are in \\spad{S},{} and the \\spad{ni}\\spad{'s} are in a given abelian monoid. The operation is commutative.")) (|highCommonTerms| (($ $ $) "\\spad{highCommonTerms(e1 a1 + ... + en an,{} f1 b1 + ... + fm bm)} returns \\spad{reduce(+,{}[max(\\spad{ei},{} \\spad{fi}) \\spad{ci}])} where \\spad{ci} ranges in the intersection of \\spad{{a1,{}...,{}an}} and \\spad{{b1,{}...,{}bm}}.")) (|mapGen| (($ (|Mapping| |#1| |#1|) $) "\\spad{mapGen(f,{} e1 a1 +...+ en an)} returns \\spad{e1 f(a1) +...+ en f(an)}.")) (|mapCoef| (($ (|Mapping| |#2| |#2|) $) "\\spad{mapCoef(f,{} e1 a1 +...+ en an)} returns \\spad{f(e1) a1 +...+ f(en) an}.")) (|coefficient| ((|#2| |#1| $) "\\spad{coefficient(s,{} e1 a1 + ... + en an)} returns \\spad{ei} such that \\spad{ai} = \\spad{s},{} or 0 if \\spad{s} is not one of the \\spad{ai}\\spad{'s}.")) (|nthFactor| ((|#1| $ (|Integer|)) "\\spad{nthFactor(x,{} n)} returns the factor of the n^th term of \\spad{x}.")) (|nthCoef| ((|#2| $ (|Integer|)) "\\spad{nthCoef(x,{} n)} returns the coefficient of the n^th term of \\spad{x}.")) (|terms| (((|List| (|Record| (|:| |gen| |#1|) (|:| |exp| |#2|))) $) "\\spad{terms(e1 a1 + ... + en an)} returns \\spad{[[a1,{} e1],{}...,{}[an,{} en]]}.")) (|size| (((|NonNegativeInteger|) $) "\\indented{1}{size(\\spad{x}) returns the number of terms in \\spad{x}.} \\indented{1}{mapGen(\\spad{f},{} \\spad{a1}\\spad{\\^}\\spad{e1} ... an\\spad{\\^}en) returns} \\spad{f(a1)\\^e1 ... f(an)\\^en}.")) (* (($ |#2| |#1|) "\\spad{e * s} returns \\spad{e} times \\spad{s}.")) (+ (($ |#1| $) "\\spad{s + x} returns the sum of \\spad{s} and \\spad{x}."))) 
@@ -1226,19 +1226,19 @@ NIL
 ((|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-172)))) 
 (-324 R E) 
 ((|constructor| (NIL "This category is similar to AbelianMonoidRing,{} except that the sum is assumed to be finite. It is a useful model for polynomials,{} but is somewhat more general.")) (|primitivePart| (($ $) "\\spad{primitivePart(p)} returns the unit normalized form of polynomial \\spad{p} divided by the content of \\spad{p}.")) (|content| ((|#1| $) "\\spad{content(p)} gives the \\spad{gcd} of the coefficients of polynomial \\spad{p}.")) (|exquo| (((|Union| $ "failed") $ |#1|) "\\spad{exquo(p,{}r)} returns the exact quotient of polynomial \\spad{p} by \\spad{r},{} or \"failed\" if none exists.")) (|binomThmExpt| (($ $ $ (|NonNegativeInteger|)) "\\spad{binomThmExpt(p,{}q,{}n)} returns \\spad{(x+y)^n} by means of the binomial theorem trick.")) (|pomopo!| (($ $ |#1| |#2| $) "\\spad{pomopo!(p1,{}r,{}e,{}p2)} returns \\spad{p1 + monomial(e,{}r) * p2} and may use \\spad{p1} as workspace. The constaant \\spad{r} is assumed to be nonzero.")) (|mapExponents| (($ (|Mapping| |#2| |#2|) $) "\\spad{mapExponents(fn,{}u)} maps function \\spad{fn} onto the exponents of the non-zero monomials of polynomial \\spad{u}.")) (|minimumDegree| ((|#2| $) "\\spad{minimumDegree(p)} gives the least exponent of a non-zero term of polynomial \\spad{p}. Error: if applied to 0.")) (|numberOfMonomials| (((|NonNegativeInteger|) $) "\\spad{numberOfMonomials(p)} gives the number of non-zero monomials in polynomial \\spad{p}.")) (|coefficients| (((|List| |#1|) $) "\\spad{coefficients(p)} gives the list of non-zero coefficients of polynomial \\spad{p}.")) (|ground| ((|#1| $) "\\spad{ground(p)} retracts polynomial \\spad{p} to the coefficient ring.")) (|ground?| (((|Boolean|) $) "\\spad{ground?(p)} tests if polynomial \\spad{p} is a member of the coefficient ring."))) 
-(((-4521 "*") |has| |#1| (-172)) (-4512 |has| |#1| (-558)) (-4513 . T) (-4514 . T) (-4516 . T)) 
+(((-4523 "*") |has| |#1| (-172)) (-4514 |has| |#1| (-558)) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-325 S) 
 ((|constructor| (NIL "A FlexibleArray is the notion of an array intended to allow for growth at the end only. Hence the following efficient operations \\spad{append(x,{}a)} meaning append item \\spad{x} at the end of the array \\spad{a} \\spad{delete(a,{}n)} meaning delete the last item from the array \\spad{a} Flexible arrays support the other operations inherited from \\spadtype{ExtensibleLinearAggregate}. However,{} these are not efficient. Flexible arrays combine the \\spad{O(1)} access time property of arrays with growing and shrinking at the end in \\spad{O(1)} (average) time. This is done by using an ordinary array which may have zero or more empty slots at the end. When the array becomes full it is copied into a new larger (50\\% larger) array. Conversely,{} when the array becomes less than 1/2 full,{} it is copied into a smaller array. Flexible arrays provide for an efficient implementation of many data structures in particular heaps,{} stacks and sets."))) 
-((-4520 . T) (-4519 . T)) 
-((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (-2198 (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
+((-4522 . T) (-4521 . T)) 
+((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (-2199 (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
 (-326 S -1478) 
 ((|constructor| (NIL "FiniteAlgebraicExtensionField \\spad{F} is the category of fields which are finite algebraic extensions of the field \\spad{F}. If \\spad{F} is finite then any finite algebraic extension of \\spad{F} is finite,{} too. Let \\spad{K} be a finite algebraic extension of the finite field \\spad{F}. The exponentiation of elements of \\spad{K} defines a \\spad{Z}-module structure on the multiplicative group of \\spad{K}. The additive group of \\spad{K} becomes a module over the ring of polynomials over \\spad{F} via the operation \\spadfun{linearAssociatedExp}(a:K,{}f:SparseUnivariatePolynomial \\spad{F}) which is linear over \\spad{F},{} \\spadignore{i.e.} for elements a from \\spad{K},{} \\spad{c},{}\\spad{d} from \\spad{F} and \\spad{f},{}\\spad{g} univariate polynomials over \\spad{F} we have \\spadfun{linearAssociatedExp}(a,{}cf+dg) equals \\spad{c} times \\spadfun{linearAssociatedExp}(a,{}\\spad{f}) plus \\spad{d} times \\spadfun{linearAssociatedExp}(a,{}\\spad{g}). Therefore \\spadfun{linearAssociatedExp} is defined completely by its action on monomials from \\spad{F}[\\spad{X}]: \\spadfun{linearAssociatedExp}(a,{}monomial(1,{}\\spad{k})\\spad{\\$}SUP(\\spad{F})) is defined to be \\spadfun{Frobenius}(a,{}\\spad{k}) which is a**(q**k) where q=size()\\spad{\\$}\\spad{F}. The operations order and discreteLog associated with the multiplicative exponentiation have additive analogues associated to the operation \\spadfun{linearAssociatedExp}. These are the functions \\spadfun{linearAssociatedOrder} and \\spadfun{linearAssociatedLog},{} respectively.")) (|linearAssociatedLog| (((|Union| (|SparseUnivariatePolynomial| |#2|) "failed") $ $) "\\spad{linearAssociatedLog(b,{}a)} returns a polynomial \\spad{g},{} such that the \\spadfun{linearAssociatedExp}(\\spad{b},{}\\spad{g}) equals a. If there is no such polynomial \\spad{g},{} then \\spadfun{linearAssociatedLog} fails.") (((|SparseUnivariatePolynomial| |#2|) $) "\\spad{linearAssociatedLog(a)} returns a polynomial \\spad{g},{} such that \\spadfun{linearAssociatedExp}(normalElement(),{}\\spad{g}) equals a.")) (|linearAssociatedOrder| (((|SparseUnivariatePolynomial| |#2|) $) "\\spad{linearAssociatedOrder(a)} retruns the monic polynomial \\spad{g} of least degree,{} such that \\spadfun{linearAssociatedExp}(a,{}\\spad{g}) is 0.")) (|linearAssociatedExp| (($ $ (|SparseUnivariatePolynomial| |#2|)) "\\spad{linearAssociatedExp(a,{}f)} is linear over \\spad{F},{} \\spadignore{i.e.} for elements a from \\spad{\\$},{} \\spad{c},{}\\spad{d} form \\spad{F} and \\spad{f},{}\\spad{g} univariate polynomials over \\spad{F} we have \\spadfun{linearAssociatedExp}(a,{}cf+dg) equals \\spad{c} times \\spadfun{linearAssociatedExp}(a,{}\\spad{f}) plus \\spad{d} times \\spadfun{linearAssociatedExp}(a,{}\\spad{g}). Therefore \\spadfun{linearAssociatedExp} is defined completely by its action on monomials from \\spad{F}[\\spad{X}]: \\spadfun{linearAssociatedExp}(a,{}monomial(1,{}\\spad{k})\\spad{\\$}SUP(\\spad{F})) is defined to be \\spadfun{Frobenius}(a,{}\\spad{k}) which is a**(q**k),{} where q=size()\\spad{\\$}\\spad{F}.")) (|generator| (($) "\\spad{generator()} returns a root of the defining polynomial. This element generates the field as an algebra over the ground field.")) (|normal?| (((|Boolean|) $) "\\spad{normal?(a)} tests whether the element \\spad{a} is normal over the ground field \\spad{F},{} \\spadignore{i.e.} \\spad{a**(q**i),{} 0 <= i <= extensionDegree()-1} is an \\spad{F}-basis,{} where \\spad{q = size()\\$F}. Implementation according to Lidl/Niederreiter: Theorem 2.39.")) (|normalElement| (($) "\\spad{normalElement()} returns a element,{} normal over the ground field \\spad{F},{} \\spadignore{i.e.} \\spad{a**(q**i),{} 0 <= i < extensionDegree()} is an \\spad{F}-basis,{} where \\spad{q = size()\\$F}. At the first call,{} the element is computed by \\spadfunFrom{createNormalElement}{FiniteAlgebraicExtensionField} then cached in a global variable. On subsequent calls,{} the element is retrieved by referencing the global variable.")) (|createNormalElement| (($) "\\spad{createNormalElement()} computes a normal element over the ground field \\spad{F},{} that is,{} \\spad{a**(q**i),{} 0 <= i < extensionDegree()} is an \\spad{F}-basis,{} where \\spad{q = size()\\$F}. Reference: Such an element exists Lidl/Niederreiter: Theorem 2.35.")) (|trace| (($ $ (|PositiveInteger|)) "\\spad{trace(a,{}d)} computes the trace of \\spad{a} with respect to the field of extension degree \\spad{d} over the ground field of size \\spad{q}. Error: if \\spad{d} does not divide the extension degree of \\spad{a}. Note that \\spad{trace(a,{}d)=reduce(+,{}[a**(q**(d*i)) for i in 0..n/d])}.") ((|#2| $) "\\spad{trace(a)} computes the trace of \\spad{a} with respect to the field considered as an algebra with 1 over the ground field \\spad{F}.")) (|norm| (($ $ (|PositiveInteger|)) "\\spad{norm(a,{}d)} computes the norm of \\spad{a} with respect to the field of extension degree \\spad{d} over the ground field of size. Error: if \\spad{d} does not divide the extension degree of \\spad{a}. Note that norm(a,{}\\spad{d}) = reduce(*,{}[a**(\\spad{q**}(d*i)) for \\spad{i} in 0..\\spad{n/d}])") ((|#2| $) "\\spad{norm(a)} computes the norm of \\spad{a} with respect to the field considered as an algebra with 1 over the ground field \\spad{F}.")) (|degree| (((|PositiveInteger|) $) "\\spad{degree(a)} returns the degree of the minimal polynomial of an element \\spad{a} over the ground field \\spad{F}.")) (|extensionDegree| (((|PositiveInteger|)) "\\spad{extensionDegree()} returns the degree of field extension.")) (|definingPolynomial| (((|SparseUnivariatePolynomial| |#2|)) "\\spad{definingPolynomial()} returns the polynomial used to define the field extension.")) (|minimalPolynomial| (((|SparseUnivariatePolynomial| $) $ (|PositiveInteger|)) "\\spad{minimalPolynomial(x,{}n)} computes the minimal polynomial of \\spad{x} over the field of extension degree \\spad{n} over the ground field \\spad{F}.") (((|SparseUnivariatePolynomial| |#2|) $) "\\spad{minimalPolynomial(a)} returns the minimal polynomial of an element \\spad{a} over the ground field \\spad{F}.")) (|represents| (($ (|Vector| |#2|)) "\\spad{represents([a1,{}..,{}an])} returns \\spad{a1*v1 + ... + an*vn},{} where \\spad{v1},{}...,{}\\spad{vn} are the elements of the fixed basis.")) (|coordinates| (((|Matrix| |#2|) (|Vector| $)) "\\spad{coordinates([v1,{}...,{}vm])} returns the coordinates of the \\spad{vi}\\spad{'s} with to the fixed basis. The coordinates of \\spad{vi} are contained in the \\spad{i}th row of the matrix returned by this function.") (((|Vector| |#2|) $) "\\spad{coordinates(a)} returns the coordinates of \\spad{a} with respect to the fixed \\spad{F}-vectorspace basis.")) (|basis| (((|Vector| $) (|PositiveInteger|)) "\\spad{basis(n)} returns a fixed basis of a subfield of \\spad{\\$} as \\spad{F}-vectorspace.") (((|Vector| $)) "\\spad{basis()} returns a fixed basis of \\spad{\\$} as \\spad{F}-vectorspace."))) 
 NIL 
 ((|HasCategory| |#2| (QUOTE (-370)))) 
 (-327 -1478) 
 ((|constructor| (NIL "FiniteAlgebraicExtensionField \\spad{F} is the category of fields which are finite algebraic extensions of the field \\spad{F}. If \\spad{F} is finite then any finite algebraic extension of \\spad{F} is finite,{} too. Let \\spad{K} be a finite algebraic extension of the finite field \\spad{F}. The exponentiation of elements of \\spad{K} defines a \\spad{Z}-module structure on the multiplicative group of \\spad{K}. The additive group of \\spad{K} becomes a module over the ring of polynomials over \\spad{F} via the operation \\spadfun{linearAssociatedExp}(a:K,{}f:SparseUnivariatePolynomial \\spad{F}) which is linear over \\spad{F},{} \\spadignore{i.e.} for elements a from \\spad{K},{} \\spad{c},{}\\spad{d} from \\spad{F} and \\spad{f},{}\\spad{g} univariate polynomials over \\spad{F} we have \\spadfun{linearAssociatedExp}(a,{}cf+dg) equals \\spad{c} times \\spadfun{linearAssociatedExp}(a,{}\\spad{f}) plus \\spad{d} times \\spadfun{linearAssociatedExp}(a,{}\\spad{g}). Therefore \\spadfun{linearAssociatedExp} is defined completely by its action on monomials from \\spad{F}[\\spad{X}]: \\spadfun{linearAssociatedExp}(a,{}monomial(1,{}\\spad{k})\\spad{\\$}SUP(\\spad{F})) is defined to be \\spadfun{Frobenius}(a,{}\\spad{k}) which is a**(q**k) where q=size()\\spad{\\$}\\spad{F}. The operations order and discreteLog associated with the multiplicative exponentiation have additive analogues associated to the operation \\spadfun{linearAssociatedExp}. These are the functions \\spadfun{linearAssociatedOrder} and \\spadfun{linearAssociatedLog},{} respectively.")) (|linearAssociatedLog| (((|Union| (|SparseUnivariatePolynomial| |#1|) "failed") $ $) "\\spad{linearAssociatedLog(b,{}a)} returns a polynomial \\spad{g},{} such that the \\spadfun{linearAssociatedExp}(\\spad{b},{}\\spad{g}) equals a. If there is no such polynomial \\spad{g},{} then \\spadfun{linearAssociatedLog} fails.") (((|SparseUnivariatePolynomial| |#1|) $) "\\spad{linearAssociatedLog(a)} returns a polynomial \\spad{g},{} such that \\spadfun{linearAssociatedExp}(normalElement(),{}\\spad{g}) equals a.")) (|linearAssociatedOrder| (((|SparseUnivariatePolynomial| |#1|) $) "\\spad{linearAssociatedOrder(a)} retruns the monic polynomial \\spad{g} of least degree,{} such that \\spadfun{linearAssociatedExp}(a,{}\\spad{g}) is 0.")) (|linearAssociatedExp| (($ $ (|SparseUnivariatePolynomial| |#1|)) "\\spad{linearAssociatedExp(a,{}f)} is linear over \\spad{F},{} \\spadignore{i.e.} for elements a from \\spad{\\$},{} \\spad{c},{}\\spad{d} form \\spad{F} and \\spad{f},{}\\spad{g} univariate polynomials over \\spad{F} we have \\spadfun{linearAssociatedExp}(a,{}cf+dg) equals \\spad{c} times \\spadfun{linearAssociatedExp}(a,{}\\spad{f}) plus \\spad{d} times \\spadfun{linearAssociatedExp}(a,{}\\spad{g}). Therefore \\spadfun{linearAssociatedExp} is defined completely by its action on monomials from \\spad{F}[\\spad{X}]: \\spadfun{linearAssociatedExp}(a,{}monomial(1,{}\\spad{k})\\spad{\\$}SUP(\\spad{F})) is defined to be \\spadfun{Frobenius}(a,{}\\spad{k}) which is a**(q**k),{} where q=size()\\spad{\\$}\\spad{F}.")) (|generator| (($) "\\spad{generator()} returns a root of the defining polynomial. This element generates the field as an algebra over the ground field.")) (|normal?| (((|Boolean|) $) "\\spad{normal?(a)} tests whether the element \\spad{a} is normal over the ground field \\spad{F},{} \\spadignore{i.e.} \\spad{a**(q**i),{} 0 <= i <= extensionDegree()-1} is an \\spad{F}-basis,{} where \\spad{q = size()\\$F}. Implementation according to Lidl/Niederreiter: Theorem 2.39.")) (|normalElement| (($) "\\spad{normalElement()} returns a element,{} normal over the ground field \\spad{F},{} \\spadignore{i.e.} \\spad{a**(q**i),{} 0 <= i < extensionDegree()} is an \\spad{F}-basis,{} where \\spad{q = size()\\$F}. At the first call,{} the element is computed by \\spadfunFrom{createNormalElement}{FiniteAlgebraicExtensionField} then cached in a global variable. On subsequent calls,{} the element is retrieved by referencing the global variable.")) (|createNormalElement| (($) "\\spad{createNormalElement()} computes a normal element over the ground field \\spad{F},{} that is,{} \\spad{a**(q**i),{} 0 <= i < extensionDegree()} is an \\spad{F}-basis,{} where \\spad{q = size()\\$F}. Reference: Such an element exists Lidl/Niederreiter: Theorem 2.35.")) (|trace| (($ $ (|PositiveInteger|)) "\\spad{trace(a,{}d)} computes the trace of \\spad{a} with respect to the field of extension degree \\spad{d} over the ground field of size \\spad{q}. Error: if \\spad{d} does not divide the extension degree of \\spad{a}. Note that \\spad{trace(a,{}d)=reduce(+,{}[a**(q**(d*i)) for i in 0..n/d])}.") ((|#1| $) "\\spad{trace(a)} computes the trace of \\spad{a} with respect to the field considered as an algebra with 1 over the ground field \\spad{F}.")) (|norm| (($ $ (|PositiveInteger|)) "\\spad{norm(a,{}d)} computes the norm of \\spad{a} with respect to the field of extension degree \\spad{d} over the ground field of size. Error: if \\spad{d} does not divide the extension degree of \\spad{a}. Note that norm(a,{}\\spad{d}) = reduce(*,{}[a**(\\spad{q**}(d*i)) for \\spad{i} in 0..\\spad{n/d}])") ((|#1| $) "\\spad{norm(a)} computes the norm of \\spad{a} with respect to the field considered as an algebra with 1 over the ground field \\spad{F}.")) (|degree| (((|PositiveInteger|) $) "\\spad{degree(a)} returns the degree of the minimal polynomial of an element \\spad{a} over the ground field \\spad{F}.")) (|extensionDegree| (((|PositiveInteger|)) "\\spad{extensionDegree()} returns the degree of field extension.")) (|definingPolynomial| (((|SparseUnivariatePolynomial| |#1|)) "\\spad{definingPolynomial()} returns the polynomial used to define the field extension.")) (|minimalPolynomial| (((|SparseUnivariatePolynomial| $) $ (|PositiveInteger|)) "\\spad{minimalPolynomial(x,{}n)} computes the minimal polynomial of \\spad{x} over the field of extension degree \\spad{n} over the ground field \\spad{F}.") (((|SparseUnivariatePolynomial| |#1|) $) "\\spad{minimalPolynomial(a)} returns the minimal polynomial of an element \\spad{a} over the ground field \\spad{F}.")) (|represents| (($ (|Vector| |#1|)) "\\spad{represents([a1,{}..,{}an])} returns \\spad{a1*v1 + ... + an*vn},{} where \\spad{v1},{}...,{}\\spad{vn} are the elements of the fixed basis.")) (|coordinates| (((|Matrix| |#1|) (|Vector| $)) "\\spad{coordinates([v1,{}...,{}vm])} returns the coordinates of the \\spad{vi}\\spad{'s} with to the fixed basis. The coordinates of \\spad{vi} are contained in the \\spad{i}th row of the matrix returned by this function.") (((|Vector| |#1|) $) "\\spad{coordinates(a)} returns the coordinates of \\spad{a} with respect to the fixed \\spad{F}-vectorspace basis.")) (|basis| (((|Vector| $) (|PositiveInteger|)) "\\spad{basis(n)} returns a fixed basis of a subfield of \\spad{\\$} as \\spad{F}-vectorspace.") (((|Vector| $)) "\\spad{basis()} returns a fixed basis of \\spad{\\$} as \\spad{F}-vectorspace."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-328) 
 ((|constructor| (NIL "This domain builds representations of program code segments for use with the FortranProgram domain.")) (|setLabelValue| (((|SingleInteger|) (|SingleInteger|)) "\\spad{setLabelValue(i)} resets the counter which produces labels to \\spad{i}")) (|getCode| (((|SExpression|) $) "\\spad{getCode(f)} returns a Lisp list of strings representing \\spad{f} in Fortran notation. This is used by the FortranProgram domain.")) (|printCode| (((|Void|) $) "\\spad{printCode(f)} prints out \\spad{f} in FORTRAN notation.")) (|code| (((|Union| (|:| |nullBranch| "null") (|:| |assignmentBranch| (|Record| (|:| |var| (|Symbol|)) (|:| |arrayIndex| (|List| (|Polynomial| (|Integer|)))) (|:| |rand| (|Record| (|:| |ints2Floats?| (|Boolean|)) (|:| |expr| (|OutputForm|)))))) (|:| |arrayAssignmentBranch| (|Record| (|:| |var| (|Symbol|)) (|:| |rand| (|OutputForm|)) (|:| |ints2Floats?| (|Boolean|)))) (|:| |conditionalBranch| (|Record| (|:| |switch| (|Switch|)) (|:| |thenClause| $) (|:| |elseClause| $))) (|:| |returnBranch| (|Record| (|:| |empty?| (|Boolean|)) (|:| |value| (|Record| (|:| |ints2Floats?| (|Boolean|)) (|:| |expr| (|OutputForm|)))))) (|:| |blockBranch| (|List| $)) (|:| |commentBranch| (|List| (|String|))) (|:| |callBranch| (|String|)) (|:| |forBranch| (|Record| (|:| |range| (|SegmentBinding| (|Polynomial| (|Integer|)))) (|:| |span| (|Polynomial| (|Integer|))) (|:| |body| $))) (|:| |labelBranch| (|SingleInteger|)) (|:| |loopBranch| (|Record| (|:| |switch| (|Switch|)) (|:| |body| $))) (|:| |commonBranch| (|Record| (|:| |name| (|Symbol|)) (|:| |contents| (|List| (|Symbol|))))) (|:| |printBranch| (|List| (|OutputForm|)))) $) "\\spad{code(f)} returns the internal representation of the object represented by \\spad{f}.")) (|operation| (((|Union| (|:| |Null| "null") (|:| |Assignment| "assignment") (|:| |Conditional| "conditional") (|:| |Return| "return") (|:| |Block| "block") (|:| |Comment| "comment") (|:| |Call| "call") (|:| |For| "for") (|:| |While| "while") (|:| |Repeat| "repeat") (|:| |Goto| "goto") (|:| |Continue| "continue") (|:| |ArrayAssignment| "arrayAssignment") (|:| |Save| "save") (|:| |Stop| "stop") (|:| |Common| "common") (|:| |Print| "print")) $) "\\spad{operation(f)} returns the name of the operation represented by \\spad{f}.")) (|common| (($ (|Symbol|) (|List| (|Symbol|))) "\\spad{common(name,{}contents)} creates a representation a named common block.")) (|printStatement| (($ (|List| (|OutputForm|))) "\\spad{printStatement(l)} creates a representation of a PRINT statement.")) (|save| (($) "\\spad{save()} creates a representation of a SAVE statement.")) (|stop| (($) "\\spad{stop()} creates a representation of a STOP statement.")) (|block| (($ (|List| $)) "\\spad{block(l)} creates a representation of the statements in \\spad{l} as a block.")) (|assign| (($ (|Symbol|) (|List| (|Polynomial| (|Integer|))) (|Expression| (|Complex| (|Float|)))) "\\spad{assign(x,{}l,{}y)} creates a representation of the assignment of \\spad{y} to the \\spad{l}\\spad{'}th element of array \\spad{x} (\\spad{l} is a list of indices).") (($ (|Symbol|) (|List| (|Polynomial| (|Integer|))) (|Expression| (|Float|))) "\\spad{assign(x,{}l,{}y)} creates a representation of the assignment of \\spad{y} to the \\spad{l}\\spad{'}th element of array \\spad{x} (\\spad{l} is a list of indices).") (($ (|Symbol|) (|List| (|Polynomial| (|Integer|))) (|Expression| (|Integer|))) "\\spad{assign(x,{}l,{}y)} creates a representation of the assignment of \\spad{y} to the \\spad{l}\\spad{'}th element of array \\spad{x} (\\spad{l} is a list of indices).") (($ (|Symbol|) (|Vector| (|Expression| (|Complex| (|Float|))))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Vector| (|Expression| (|Float|)))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Vector| (|Expression| (|Integer|)))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Matrix| (|Expression| (|Complex| (|Float|))))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Matrix| (|Expression| (|Float|)))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Matrix| (|Expression| (|Integer|)))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Expression| (|Complex| (|Float|)))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Expression| (|Float|))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Expression| (|Integer|))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|List| (|Polynomial| (|Integer|))) (|Expression| (|MachineComplex|))) "\\spad{assign(x,{}l,{}y)} creates a representation of the assignment of \\spad{y} to the \\spad{l}\\spad{'}th element of array \\spad{x} (\\spad{l} is a list of indices).") (($ (|Symbol|) (|List| (|Polynomial| (|Integer|))) (|Expression| (|MachineFloat|))) "\\spad{assign(x,{}l,{}y)} creates a representation of the assignment of \\spad{y} to the \\spad{l}\\spad{'}th element of array \\spad{x} (\\spad{l} is a list of indices).") (($ (|Symbol|) (|List| (|Polynomial| (|Integer|))) (|Expression| (|MachineInteger|))) "\\spad{assign(x,{}l,{}y)} creates a representation of the assignment of \\spad{y} to the \\spad{l}\\spad{'}th element of array \\spad{x} (\\spad{l} is a list of indices).") (($ (|Symbol|) (|Vector| (|Expression| (|MachineComplex|)))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Vector| (|Expression| (|MachineFloat|)))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Vector| (|Expression| (|MachineInteger|)))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Matrix| (|Expression| (|MachineComplex|)))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Matrix| (|Expression| (|MachineFloat|)))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Matrix| (|Expression| (|MachineInteger|)))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Vector| (|MachineComplex|))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Vector| (|MachineFloat|))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Vector| (|MachineInteger|))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Matrix| (|MachineComplex|))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Matrix| (|MachineFloat|))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Matrix| (|MachineInteger|))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Expression| (|MachineComplex|))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Expression| (|MachineFloat|))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|Expression| (|MachineInteger|))) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.") (($ (|Symbol|) (|String|)) "\\spad{assign(x,{}y)} creates a representation of the FORTRAN expression x=y.")) (|cond| (($ (|Switch|) $ $) "\\spad{cond(s,{}e,{}f)} creates a representation of the FORTRAN expression IF (\\spad{s}) THEN \\spad{e} ELSE \\spad{f}.") (($ (|Switch|) $) "\\spad{cond(s,{}e)} creates a representation of the FORTRAN expression IF (\\spad{s}) THEN \\spad{e}.")) (|returns| (($ (|Expression| (|Complex| (|Float|)))) "\\spad{returns(e)} creates a representation of a FORTRAN RETURN statement with a returned value.") (($ (|Expression| (|Integer|))) "\\spad{returns(e)} creates a representation of a FORTRAN RETURN statement with a returned value.") (($ (|Expression| (|Float|))) "\\spad{returns(e)} creates a representation of a FORTRAN RETURN statement with a returned value.") (($ (|Expression| (|MachineComplex|))) "\\spad{returns(e)} creates a representation of a FORTRAN RETURN statement with a returned value.") (($ (|Expression| (|MachineInteger|))) "\\spad{returns(e)} creates a representation of a FORTRAN RETURN statement with a returned value.") (($ (|Expression| (|MachineFloat|))) "\\spad{returns(e)} creates a representation of a FORTRAN RETURN statement with a returned value.") (($) "\\spad{returns()} creates a representation of a FORTRAN RETURN statement.")) (|call| (($ (|String|)) "\\spad{call(s)} creates a representation of a FORTRAN CALL statement")) (|comment| (($ (|List| (|String|))) "\\spad{comment(s)} creates a representation of the Strings \\spad{s} as a multi-line FORTRAN comment.") (($ (|String|)) "\\spad{comment(s)} creates a representation of the String \\spad{s} as a single FORTRAN comment.")) (|continue| (($ (|SingleInteger|)) "\\spad{continue(l)} creates a representation of a FORTRAN CONTINUE labelled with \\spad{l}")) (|goto| (($ (|SingleInteger|)) "\\spad{goto(l)} creates a representation of a FORTRAN GOTO statement")) (|repeatUntilLoop| (($ (|Switch|) $) "\\spad{repeatUntilLoop(s,{}c)} creates a repeat ... until loop in FORTRAN.")) (|whileLoop| (($ (|Switch|) $) "\\spad{whileLoop(s,{}c)} creates a while loop in FORTRAN.")) (|forLoop| (($ (|SegmentBinding| (|Polynomial| (|Integer|))) (|Polynomial| (|Integer|)) $) "\\spad{forLoop(i=1..10,{}n,{}c)} creates a representation of a FORTRAN DO loop with \\spad{i} ranging over the values 1 to 10 by \\spad{n}.") (($ (|SegmentBinding| (|Polynomial| (|Integer|))) $) "\\spad{forLoop(i=1..10,{}c)} creates a representation of a FORTRAN DO loop with \\spad{i} ranging over the values 1 to 10.")) (|coerce| (((|OutputForm|) $) "\\spad{coerce(f)} returns an object of type OutputForm."))) 
@@ -1278,7 +1278,7 @@ NIL
 NIL 
 (-337 |basicSymbols| |subscriptedSymbols| R) 
 ((|constructor| (NIL "A domain of expressions involving functions which can be translated into standard Fortran-77,{} with some extra extensions from the NAG Fortran Library.")) (|useNagFunctions| (((|Boolean|) (|Boolean|)) "\\spad{useNagFunctions(v)} sets the flag which controls whether NAG functions \\indented{1}{are being used for mathematical and machine constants.\\space{2}The previous} \\indented{1}{value is returned.}") (((|Boolean|)) "\\spad{useNagFunctions()} indicates whether NAG functions are being used \\indented{1}{for mathematical and machine constants.}")) (|variables| (((|List| (|Symbol|)) $) "\\spad{variables(e)} return a list of all the variables in \\spad{e}.")) (|pi| (($) "\\spad{\\spad{pi}(x)} represents the NAG Library function X01AAF which returns \\indented{1}{an approximation to the value of \\spad{pi}}")) (|tanh| (($ $) "\\spad{tanh(x)} represents the Fortran intrinsic function TANH")) (|cosh| (($ $) "\\spad{cosh(x)} represents the Fortran intrinsic function COSH")) (|sinh| (($ $) "\\spad{sinh(x)} represents the Fortran intrinsic function SINH")) (|atan| (($ $) "\\spad{atan(x)} represents the Fortran intrinsic function ATAN")) (|acos| (($ $) "\\spad{acos(x)} represents the Fortran intrinsic function ACOS")) (|asin| (($ $) "\\spad{asin(x)} represents the Fortran intrinsic function ASIN")) (|tan| (($ $) "\\spad{tan(x)} represents the Fortran intrinsic function TAN")) (|cos| (($ $) "\\spad{cos(x)} represents the Fortran intrinsic function COS")) (|sin| (($ $) "\\spad{sin(x)} represents the Fortran intrinsic function SIN")) (|log10| (($ $) "\\spad{log10(x)} represents the Fortran intrinsic function \\spad{LOG10}")) (|log| (($ $) "\\spad{log(x)} represents the Fortran intrinsic function LOG")) (|exp| (($ $) "\\spad{exp(x)} represents the Fortran intrinsic function EXP")) (|sqrt| (($ $) "\\spad{sqrt(x)} represents the Fortran intrinsic function SQRT")) (|abs| (($ $) "\\spad{abs(x)} represents the Fortran intrinsic function ABS")) (|coerce| (((|Expression| |#3|) $) "\\spad{coerce(x)} is not documented")) (|retractIfCan| (((|Union| $ "failed") (|Polynomial| (|Float|))) "\\spad{retractIfCan(e)} takes \\spad{e} and tries to transform it into a FortranExpression checking that it contains no non-Fortran functions,{} and that it only contains the given basic symbols and subscripted symbols which correspond to scalar and array parameters respectively.") (((|Union| $ "failed") (|Fraction| (|Polynomial| (|Float|)))) "\\spad{retractIfCan(e)} takes \\spad{e} and tries to transform it into a FortranExpression checking that it contains no non-Fortran functions,{} and that it only contains the given basic symbols and subscripted symbols which correspond to scalar and array parameters respectively.") (((|Union| $ "failed") (|Expression| (|Float|))) "\\spad{retractIfCan(e)} takes \\spad{e} and tries to transform it into a FortranExpression checking that it contains no non-Fortran functions,{} and that it only contains the given basic symbols and subscripted symbols which correspond to scalar and array parameters respectively.") (((|Union| $ "failed") (|Polynomial| (|Integer|))) "\\spad{retractIfCan(e)} takes \\spad{e} and tries to transform it into a FortranExpression checking that it contains no non-Fortran functions,{} and that it only contains the given basic symbols and subscripted symbols which correspond to scalar and array parameters respectively.") (((|Union| $ "failed") (|Fraction| (|Polynomial| (|Integer|)))) "\\spad{retractIfCan(e)} takes \\spad{e} and tries to transform it into a FortranExpression checking that it contains no non-Fortran functions,{} and that it only contains the given basic symbols and subscripted symbols which correspond to scalar and array parameters respectively.") (((|Union| $ "failed") (|Expression| (|Integer|))) "\\spad{retractIfCan(e)} takes \\spad{e} and tries to transform it into a FortranExpression checking that it contains no non-Fortran functions,{} and that it only contains the given basic symbols and subscripted symbols which correspond to scalar and array parameters respectively.") (((|Union| $ "failed") (|Symbol|)) "\\spad{retractIfCan(e)} takes \\spad{e} and tries to transform it into a FortranExpression checking that it is one of the given basic symbols or subscripted symbols which correspond to scalar and array parameters respectively.") (((|Union| $ "failed") (|Expression| |#3|)) "\\spad{retractIfCan(e)} takes \\spad{e} and tries to transform it into a FortranExpression checking that it contains no non-Fortran functions,{} and that it only contains the given basic symbols and subscripted symbols which correspond to scalar and array parameters respectively.")) (|retract| (($ (|Polynomial| (|Float|))) "\\spad{retract(e)} takes \\spad{e} and transforms it into a FortranExpression checking that it contains no non-Fortran functions,{} and that it only contains the given basic symbols and subscripted symbols which correspond to scalar and array parameters respectively.") (($ (|Fraction| (|Polynomial| (|Float|)))) "\\spad{retract(e)} takes \\spad{e} and transforms it into a FortranExpression checking that it contains no non-Fortran functions,{} and that it only contains the given basic symbols and subscripted symbols which correspond to scalar and array parameters respectively.") (($ (|Expression| (|Float|))) "\\spad{retract(e)} takes \\spad{e} and transforms it into a FortranExpression checking that it contains no non-Fortran functions,{} and that it only contains the given basic symbols and subscripted symbols which correspond to scalar and array parameters respectively.") (($ (|Polynomial| (|Integer|))) "\\spad{retract(e)} takes \\spad{e} and transforms it into a FortranExpression checking that it contains no non-Fortran functions,{} and that it only contains the given basic symbols and subscripted symbols which correspond to scalar and array parameters respectively.") (($ (|Fraction| (|Polynomial| (|Integer|)))) "\\spad{retract(e)} takes \\spad{e} and transforms it into a FortranExpression checking that it contains no non-Fortran functions,{} and that it only contains the given basic symbols and subscripted symbols which correspond to scalar and array parameters respectively.") (($ (|Expression| (|Integer|))) "\\spad{retract(e)} takes \\spad{e} and transforms it into a FortranExpression checking that it contains no non-Fortran functions,{} and that it only contains the given basic symbols and subscripted symbols which correspond to scalar and array parameters respectively.") (($ (|Symbol|)) "\\spad{retract(e)} takes \\spad{e} and transforms it into a FortranExpression checking that it is one of the given basic symbols or subscripted symbols which correspond to scalar and array parameters respectively.") (($ (|Expression| |#3|)) "\\spad{retract(e)} takes \\spad{e} and transforms it into a FortranExpression checking that it contains no non-Fortran functions,{} and that it only contains the given basic symbols and subscripted symbols which correspond to scalar and array parameters respectively."))) 
-((-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4515 . T) (-4516 . T) (-4518 . T)) 
 ((|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#3| (LIST (QUOTE -1037) (QUOTE (-381)))) (|HasCategory| $ (QUOTE (-1047))) (|HasCategory| $ (LIST (QUOTE -1037) (QUOTE (-568))))) 
 (-338 R1 UP1 UPUP1 F1 R2 UP2 UPUP2 F2) 
 ((|constructor| (NIL "Lifts a map from rings to function fields over them.")) (|map| ((|#8| (|Mapping| |#5| |#1|) |#4|) "\\spad{map(f,{} p)} lifts \\spad{f} to \\spad{F1} and applies it to \\spad{p}."))) 
@@ -1290,29 +1290,29 @@ NIL
 ((|HasCategory| |#2| (QUOTE (-370))) (|HasCategory| |#2| (QUOTE (-365)))) 
 (-340 -1478 UP UPUP) 
 ((|constructor| (NIL "This category is a model for the function field of a plane algebraic curve.")) (|rationalPoints| (((|List| (|List| |#1|))) "\\indented{1}{rationalPoints() returns the list of all the affine} rational points.")) (|nonSingularModel| (((|List| (|Polynomial| |#1|)) (|Symbol|)) "\\spad{nonSingularModel(u)} returns the equations in \\spad{u1},{}...,{}un of an affine non-singular model for the curve.")) (|algSplitSimple| (((|Record| (|:| |num| $) (|:| |den| |#2|) (|:| |derivden| |#2|) (|:| |gd| |#2|)) $ (|Mapping| |#2| |#2|)) "\\spad{algSplitSimple(f,{} D)} returns \\spad{[h,{}d,{}d',{}g]} such that \\spad{f=h/d},{} \\spad{h} is integral at all the normal places \\spad{w}.\\spad{r}.\\spad{t}. \\spad{D},{} \\spad{d' = Dd},{} \\spad{g = gcd(d,{} discriminant())} and \\spad{D} is the derivation to use. \\spad{f} must have at most simple finite poles.")) (|hyperelliptic| (((|Union| |#2| "failed")) "\\spad{hyperelliptic()} returns \\spad{p(x)} if the curve is the hyperelliptic defined by \\spad{y**2 = p(x)},{} \"failed\" otherwise.")) (|elliptic| (((|Union| |#2| "failed")) "\\spad{elliptic()} returns \\spad{p(x)} if the curve is the elliptic defined by \\spad{y**2 = p(x)},{} \"failed\" otherwise.")) (|elt| ((|#1| $ |#1| |#1|) "\\spad{elt(f,{}a,{}b)} or \\spad{f}(a,{} \\spad{b}) returns the value of \\spad{f} at the point \\spad{(x = a,{} y = b)} if it is not singular.")) (|primitivePart| (($ $) "\\spad{primitivePart(f)} removes the content of the denominator and the common content of the numerator of \\spad{f}.")) (|differentiate| (($ $ (|Mapping| |#2| |#2|)) "\\spad{differentiate(x,{} d)} extends the derivation \\spad{d} from UP to \\$ and applies it to \\spad{x}.")) (|integralDerivationMatrix| (((|Record| (|:| |num| (|Matrix| |#2|)) (|:| |den| |#2|)) (|Mapping| |#2| |#2|)) "\\spad{integralDerivationMatrix(d)} extends the derivation \\spad{d} from UP to \\$ and returns (\\spad{M},{} \\spad{Q}) such that the i^th row of \\spad{M} divided by \\spad{Q} form the coordinates of \\spad{d(\\spad{wi})} with respect to \\spad{(w1,{}...,{}wn)} where \\spad{(w1,{}...,{}wn)} is the integral basis returned by integralBasis().")) (|integralRepresents| (($ (|Vector| |#2|) |#2|) "\\spad{integralRepresents([A1,{}...,{}An],{} D)} returns \\spad{(A1 w1+...+An wn)/D} where \\spad{(w1,{}...,{}wn)} is the integral basis of \\spad{integralBasis()}.")) (|integralCoordinates| (((|Record| (|:| |num| (|Vector| |#2|)) (|:| |den| |#2|)) $) "\\spad{integralCoordinates(f)} returns \\spad{[[A1,{}...,{}An],{} D]} such that \\spad{f = (A1 w1 +...+ An wn) / D} where \\spad{(w1,{}...,{}wn)} is the integral basis returned by \\spad{integralBasis()}.")) (|represents| (($ (|Vector| |#2|) |#2|) "\\spad{represents([A0,{}...,{}A(n-1)],{}D)} returns \\spad{(A0 + A1 y +...+ A(n-1)*y**(n-1))/D}.") (($ (|Vector| |#2|) |#2|) "\\spad{represents([A0,{}...,{}A(n-1)],{}D)} returns \\spad{(A0 + A1 y +...+ A(n-1)*y**(n-1))/D}.")) (|yCoordinates| (((|Record| (|:| |num| (|Vector| |#2|)) (|:| |den| |#2|)) $) "\\spad{yCoordinates(f)} returns \\spad{[[A1,{}...,{}An],{} D]} such that \\spad{f = (A1 + A2 y +...+ An y**(n-1)) / D}.")) (|inverseIntegralMatrixAtInfinity| (((|Matrix| (|Fraction| |#2|))) "\\indented{1}{inverseIntegralMatrixAtInfinity() returns \\spad{M} such} \\indented{1}{that \\spad{M (v1,{}...,{}vn) = (1,{} y,{} ...,{} y**(n-1))}} \\indented{1}{where \\spad{(v1,{}...,{}vn)} is the local integral basis at infinity} \\indented{1}{returned by \\spad{infIntBasis()}.} \\blankline \\spad{X} \\spad{P0} \\spad{:=} UnivariatePolynomial(\\spad{x},{} Integer) \\spad{X} \\spad{P1} \\spad{:=} UnivariatePolynomial(\\spad{y},{} Fraction \\spad{P0}) \\spad{X} \\spad{R} \\spad{:=} RadicalFunctionField(INT,{} \\spad{P0},{} \\spad{P1},{} 1 - \\spad{x**20},{} 20) \\spad{X} inverseIntegralMatrixAtInfinity()\\$\\spad{R}")) (|integralMatrixAtInfinity| (((|Matrix| (|Fraction| |#2|))) "\\indented{1}{integralMatrixAtInfinity() returns \\spad{M} such that} \\indented{1}{\\spad{(v1,{}...,{}vn) = M (1,{} y,{} ...,{} y**(n-1))}} \\indented{1}{where \\spad{(v1,{}...,{}vn)} is the local integral basis at infinity} \\indented{1}{returned by \\spad{infIntBasis()}.} \\blankline \\spad{X} \\spad{P0} \\spad{:=} UnivariatePolynomial(\\spad{x},{} Integer) \\spad{X} \\spad{P1} \\spad{:=} UnivariatePolynomial(\\spad{y},{} Fraction \\spad{P0}) \\spad{X} \\spad{R} \\spad{:=} RadicalFunctionField(INT,{} \\spad{P0},{} \\spad{P1},{} 1 - \\spad{x**20},{} 20) \\spad{X} integralMatrixAtInfinity()\\$\\spad{R}")) (|inverseIntegralMatrix| (((|Matrix| (|Fraction| |#2|))) "\\indented{1}{inverseIntegralMatrix() returns \\spad{M} such that} \\indented{1}{\\spad{M (w1,{}...,{}wn) = (1,{} y,{} ...,{} y**(n-1))}} \\indented{1}{where \\spad{(w1,{}...,{}wn)} is the integral basis of} \\indented{1}{\\spadfunFrom{integralBasis}{FunctionFieldCategory}.} \\blankline \\spad{X} \\spad{P0} \\spad{:=} UnivariatePolynomial(\\spad{x},{} Integer) \\spad{X} \\spad{P1} \\spad{:=} UnivariatePolynomial(\\spad{y},{} Fraction \\spad{P0}) \\spad{X} \\spad{R} \\spad{:=} RadicalFunctionField(INT,{} \\spad{P0},{} \\spad{P1},{} 1 - \\spad{x**20},{} 20) \\spad{X} inverseIntegralMatrix()\\$\\spad{R}")) (|integralMatrix| (((|Matrix| (|Fraction| |#2|))) "\\indented{1}{integralMatrix() returns \\spad{M} such that} \\indented{1}{\\spad{(w1,{}...,{}wn) = M (1,{} y,{} ...,{} y**(n-1))},{}} \\indented{1}{where \\spad{(w1,{}...,{}wn)} is the integral basis of} \\indented{1}{\\spadfunFrom{integralBasis}{FunctionFieldCategory}.} \\blankline \\spad{X} \\spad{P0} \\spad{:=} UnivariatePolynomial(\\spad{x},{} Integer) \\spad{X} \\spad{P1} \\spad{:=} UnivariatePolynomial(\\spad{y},{} Fraction \\spad{P0}) \\spad{X} \\spad{R} \\spad{:=} RadicalFunctionField(INT,{} \\spad{P0},{} \\spad{P1},{} 1 - \\spad{x**20},{} 20) \\spad{X} integralMatrix()\\$\\spad{R}")) (|reduceBasisAtInfinity| (((|Vector| $) (|Vector| $)) "\\spad{reduceBasisAtInfinity(b1,{}...,{}bn)} returns \\spad{(x**i * bj)} for all \\spad{i},{}\\spad{j} such that \\spad{x**i*bj} is locally integral at infinity.")) (|normalizeAtInfinity| (((|Vector| $) (|Vector| $)) "\\spad{normalizeAtInfinity(v)} makes \\spad{v} normal at infinity.")) (|complementaryBasis| (((|Vector| $) (|Vector| $)) "\\spad{complementaryBasis(b1,{}...,{}bn)} returns the complementary basis \\spad{(b1',{}...,{}bn')} of \\spad{(b1,{}...,{}bn)}.")) (|integral?| (((|Boolean|) $ |#2|) "\\spad{integral?(f,{} p)} tests whether \\spad{f} is locally integral at \\spad{p(x) = 0}") (((|Boolean|) $ |#1|) "\\spad{integral?(f,{} a)} tests whether \\spad{f} is locally integral at \\spad{x = a}.") (((|Boolean|) $) "\\spad{integral?()} tests if \\spad{f} is integral over \\spad{k[x]}.")) (|integralAtInfinity?| (((|Boolean|) $) "\\spad{integralAtInfinity?()} tests if \\spad{f} is locally integral at infinity.")) (|integralBasisAtInfinity| (((|Vector| $)) "\\indented{1}{integralBasisAtInfinity() returns the local integral basis} \\indented{1}{at infinity} \\blankline \\spad{X} \\spad{P0} \\spad{:=} UnivariatePolynomial(\\spad{x},{} Integer) \\spad{X} \\spad{P1} \\spad{:=} UnivariatePolynomial(\\spad{y},{} Fraction \\spad{P0}) \\spad{X} \\spad{R} \\spad{:=} RadicalFunctionField(INT,{} \\spad{P0},{} \\spad{P1},{} 1 - \\spad{x**20},{} 20) \\spad{X} integralBasisAtInfinity()\\$\\spad{R}")) (|integralBasis| (((|Vector| $)) "\\indented{1}{integralBasis() returns the integral basis for the curve.} \\blankline \\spad{X} \\spad{P0} \\spad{:=} UnivariatePolynomial(\\spad{x},{} Integer) \\spad{X} \\spad{P1} \\spad{:=} UnivariatePolynomial(\\spad{y},{} Fraction \\spad{P0}) \\spad{X} \\spad{R} \\spad{:=} RadicalFunctionField(INT,{} \\spad{P0},{} \\spad{P1},{} 1 - \\spad{x**20},{} 20) \\spad{X} integralBasis()\\$\\spad{R}")) (|ramified?| (((|Boolean|) |#2|) "\\spad{ramified?(p)} tests whether \\spad{p(x) = 0} is ramified.") (((|Boolean|) |#1|) "\\spad{ramified?(a)} tests whether \\spad{x = a} is ramified.")) (|ramifiedAtInfinity?| (((|Boolean|)) "\\spad{ramifiedAtInfinity?()} tests if infinity is ramified.")) (|singular?| (((|Boolean|) |#2|) "\\spad{singular?(p)} tests whether \\spad{p(x) = 0} is singular.") (((|Boolean|) |#1|) "\\spad{singular?(a)} tests whether \\spad{x = a} is singular.")) (|singularAtInfinity?| (((|Boolean|)) "\\spad{singularAtInfinity?()} tests if there is a singularity at infinity.")) (|branchPoint?| (((|Boolean|) |#2|) "\\spad{branchPoint?(p)} tests whether \\spad{p(x) = 0} is a branch point.") (((|Boolean|) |#1|) "\\spad{branchPoint?(a)} tests whether \\spad{x = a} is a branch point.")) (|branchPointAtInfinity?| (((|Boolean|)) "\\indented{1}{branchPointAtInfinity?() tests if there is a branch point} \\indented{1}{at infinity.} \\blankline \\spad{X} \\spad{P0} \\spad{:=} UnivariatePolynomial(\\spad{x},{} Integer) \\spad{X} \\spad{P1} \\spad{:=} UnivariatePolynomial(\\spad{y},{} Fraction \\spad{P0}) \\spad{X} \\spad{R} \\spad{:=} RadicalFunctionField(INT,{} \\spad{P0},{} \\spad{P1},{} 1 - \\spad{x**20},{} 20) \\spad{X} branchPointAtInfinity?()\\$\\spad{R} \\spad{X} \\spad{R2} \\spad{:=} RadicalFunctionField(INT,{} \\spad{P0},{} \\spad{P1},{} 2 * \\spad{x**2},{} 4) \\spad{X} branchPointAtInfinity?()\\$\\spad{R}")) (|rationalPoint?| (((|Boolean|) |#1| |#1|) "\\indented{1}{rationalPoint?(a,{} \\spad{b}) tests if \\spad{(x=a,{}y=b)} is on the curve.} \\blankline \\spad{X} \\spad{P0} \\spad{:=} UnivariatePolynomial(\\spad{x},{} Integer) \\spad{X} \\spad{P1} \\spad{:=} UnivariatePolynomial(\\spad{y},{} Fraction \\spad{P0}) \\spad{X} \\spad{R} \\spad{:=} RadicalFunctionField(INT,{} \\spad{P0},{} \\spad{P1},{} 1 - \\spad{x**20},{} 20) \\spad{X} rationalPoint?(0,{}0)\\$\\spad{R} \\spad{X} \\spad{R2} \\spad{:=} RadicalFunctionField(INT,{} \\spad{P0},{} \\spad{P1},{} 2 * \\spad{x**2},{} 4) \\spad{X} rationalPoint?(0,{}0)\\$\\spad{R2}")) (|absolutelyIrreducible?| (((|Boolean|)) "\\indented{1}{absolutelyIrreducible?() tests if the curve absolutely irreducible?} \\blankline \\spad{X} \\spad{P0} \\spad{:=} UnivariatePolynomial(\\spad{x},{} Integer) \\spad{X} \\spad{P1} \\spad{:=} UnivariatePolynomial(\\spad{y},{} Fraction \\spad{P0}) \\spad{X} \\spad{R2} \\spad{:=} RadicalFunctionField(INT,{} \\spad{P0},{} \\spad{P1},{} 2 * \\spad{x**2},{} 4) \\spad{X} absolutelyIrreducible?()\\$\\spad{R2}")) (|genus| (((|NonNegativeInteger|)) "\\indented{1}{genus() returns the genus of one absolutely irreducible component} \\blankline \\spad{X} \\spad{P0} \\spad{:=} UnivariatePolynomial(\\spad{x},{} Integer) \\spad{X} \\spad{P1} \\spad{:=} UnivariatePolynomial(\\spad{y},{} Fraction \\spad{P0}) \\spad{X} \\spad{R} \\spad{:=} RadicalFunctionField(INT,{} \\spad{P0},{} \\spad{P1},{} 1 - \\spad{x**20},{} 20) \\spad{X} genus()\\$\\spad{R}")) (|numberOfComponents| (((|NonNegativeInteger|)) "\\indented{1}{numberOfComponents() returns the number of absolutely irreducible} \\indented{1}{components.} \\blankline \\spad{X} \\spad{P0} \\spad{:=} UnivariatePolynomial(\\spad{x},{} Integer) \\spad{X} \\spad{P1} \\spad{:=} UnivariatePolynomial(\\spad{y},{} Fraction \\spad{P0}) \\spad{X} \\spad{R} \\spad{:=} RadicalFunctionField(INT,{} \\spad{P0},{} \\spad{P1},{} 1 - \\spad{x**20},{} 20) \\spad{X} numberOfComponents()\\$\\spad{R}"))) 
-((-4512 |has| (-409 |#2|) (-365)) (-4517 |has| (-409 |#2|) (-365)) (-4511 |has| (-409 |#2|) (-365)) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4514 |has| (-409 |#2|) (-365)) (-4519 |has| (-409 |#2|) (-365)) (-4513 |has| (-409 |#2|) (-365)) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-341 |p| |extdeg|) 
 ((|constructor| (NIL "FiniteFieldCyclicGroup(\\spad{p},{}\\spad{n}) implements a finite field extension of degee \\spad{n} over the prime field with \\spad{p} elements. Its elements are represented by powers of a primitive element,{} \\spadignore{i.e.} a generator of the multiplicative (cyclic) group. As primitive element we choose the root of the extension polynomial,{} which is created by createPrimitivePoly from \\spadtype{FiniteFieldPolynomialPackage}. The Zech logarithms are stored in a table of size half of the field size,{} and use \\spadtype{SingleInteger} for representing field elements,{} hence,{} there are restrictions on the size of the field.")) (|getZechTable| (((|PrimitiveArray| (|SingleInteger|))) "\\spad{getZechTable()} returns the zech logarithm table of the field. This table is used to perform additions in the field quickly."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| (-905 |#1|) (QUOTE (-150))) (|HasCategory| (-905 |#1|) (QUOTE (-370))) (|HasCategory| (-905 |#1|) (QUOTE (-148))) (-2198 (|HasCategory| (-905 |#1|) (QUOTE (-148))) (|HasCategory| (-905 |#1|) (QUOTE (-370))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| (-905 |#1|) (QUOTE (-150))) (|HasCategory| (-905 |#1|) (QUOTE (-370))) (|HasCategory| (-905 |#1|) (QUOTE (-148))) (-2199 (|HasCategory| (-905 |#1|) (QUOTE (-148))) (|HasCategory| (-905 |#1|) (QUOTE (-370))))) 
 (-342 GF |defpol|) 
 ((|constructor| (NIL "FiniteFieldCyclicGroupExtensionByPolynomial(\\spad{GF},{}defpol) implements a finite extension field of the ground field \\spad{GF}. Its elements are represented by powers of a primitive element,{} \\spadignore{i.e.} a generator of the multiplicative (cyclic) group. As primitive element we choose the root of the extension polynomial defpol,{} which MUST be primitive (user responsibility). Zech logarithms are stored in a table of size half of the field size,{} and use \\spadtype{SingleInteger} for representing field elements,{} hence,{} there are restrictions on the size of the field.")) (|getZechTable| (((|PrimitiveArray| (|SingleInteger|))) "\\spad{getZechTable()} returns the zech logarithm table of the field it is used to perform additions in the field quickly."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (QUOTE (-148))) (-2198 (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-370))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (QUOTE (-148))) (-2199 (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-370))))) 
 (-343 GF |extdeg|) 
 ((|constructor| (NIL "FiniteFieldCyclicGroupExtension(\\spad{GF},{}\\spad{n}) implements a extension of degree \\spad{n} over the ground field \\spad{GF}. Its elements are represented by powers of a primitive element,{} \\spadignore{i.e.} a generator of the multiplicative (cyclic) group. As primitive element we choose the root of the extension polynomial,{} which is created by createPrimitivePoly from \\spadtype{FiniteFieldPolynomialPackage}. Zech logarithms are stored in a table of size half of the field size,{} and use \\spadtype{SingleInteger} for representing field elements,{} hence,{} there are restrictions on the size of the field.")) (|getZechTable| (((|PrimitiveArray| (|SingleInteger|))) "\\spad{getZechTable()} returns the zech logarithm table of the field. This table is used to perform additions in the field quickly."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (QUOTE (-148))) (-2198 (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-370))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (QUOTE (-148))) (-2199 (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-370))))) 
 (-344 K |PolK|) 
 ((|constructor| (NIL "Part of the package for Algebraic Function Fields in one variable (\\spad{PAFF}) It has been modified (very slitely) so that each time the \"factor\" function is used,{} the variable related to the size of the field over which the polynomial is factorized is reset. This is done in order to be used with a \"dynamic extension field\" which size is not fixed but set before calling the \"factor\" function and which is parse by side effect to this package via the function \"size\". See the local function \"initialize\" of this package."))) 
 NIL 
 NIL 
-(-345 -3190 V VF) 
+(-345 -3192 V VF) 
 ((|constructor| (NIL "This package lifts the interpolation functions from \\spadtype{FractionFreeFastGaussian} to fractions. The packages defined in this file provide fast fraction free rational interpolation algorithms. (see \\spad{FAMR2},{} FFFG,{} FFFGF,{} NEWTON)")) (|generalInterpolation| (((|Stream| (|Matrix| (|SparseUnivariatePolynomial| |#1|))) (|List| |#1|) (|Mapping| |#1| (|NonNegativeInteger|) (|NonNegativeInteger|) |#2|) (|Vector| |#3|) (|NonNegativeInteger|) (|NonNegativeInteger|)) "\\spad{generalInterpolation(l,{} CA,{} f,{} sumEta,{} maxEta)} applies generalInterpolation(\\spad{l},{} \\spad{CA},{} \\spad{f},{} eta) for all possible eta with maximal entry maxEta and sum of entries \\spad{sumEta}") (((|Matrix| (|SparseUnivariatePolynomial| |#1|)) (|List| |#1|) (|Mapping| |#1| (|NonNegativeInteger|) (|NonNegativeInteger|) |#2|) (|Vector| |#3|) (|List| (|NonNegativeInteger|))) "\\spad{generalInterpolation(l,{} CA,{} f,{} eta)} performs Hermite-Pade approximation using the given action \\spad{CA} of polynomials on the elements of \\spad{f}. The result is guaranteed to be correct up to order |eta|-1. Given that eta is a \"normal\" point,{} the degrees on the diagonal are given by eta. The degrees of column \\spad{i} are in this case eta + \\spad{e}.\\spad{i} - [1,{}1,{}...,{}1],{} where the degree of zero is \\spad{-1}."))) 
 NIL 
 NIL 
-(-346 -3190 V) 
+(-346 -3192 V) 
 ((|constructor| (NIL "This package implements the interpolation algorithm proposed in Beckermann,{} Bernhard and Labahn,{} George,{} Fraction-free computation of matrix rational interpolants and matrix GCDs,{} SIAM Journal on Matrix Analysis and Applications 22. The packages defined in this file provide fast fraction free rational interpolation algorithms. (see \\spad{FAMR2},{} FFFG,{} FFFGF,{} NEWTON)")) (|qShiftC| (((|List| |#1|) |#1| (|NonNegativeInteger|)) "\\spad{qShiftC} gives the coefficients \\spad{c_}{\\spad{k},{}\\spad{k}} in the expansion <x^k> \\spad{z} \\spad{g}(\\spad{x}) = sum_{\\spad{i=0}}\\spad{^k} \\spad{c_}{\\spad{k},{}\\spad{i}} <x^i> \\spad{g}(\\spad{x}),{} where \\spad{z} acts on \\spad{g}(\\spad{x}) by shifting. In fact,{} the result is [1,{}\\spad{q},{}\\spad{q^2},{}...]")) (|qShiftAction| ((|#1| |#1| (|NonNegativeInteger|) (|NonNegativeInteger|) |#2|) "\\spad{qShiftAction(q,{} k,{} l,{} g)} gives the coefficient of \\spad{x^k} in \\spad{z^l} \\spad{g}(\\spad{x}),{} where \\spad{z*}(a+b*x+c*x^2+d*x^3+...) = (a+q*b*x+q^2*c*x^2+q^3*d*x^3+...). In terms of sequences,{} z*u(\\spad{n})=q^n*u(\\spad{n}).")) (|DiffC| (((|List| |#1|) (|NonNegativeInteger|)) "\\spad{DiffC} gives the coefficients \\spad{c_}{\\spad{k},{}\\spad{k}} in the expansion <x^k> \\spad{z} \\spad{g}(\\spad{x}) = sum_{\\spad{i=0}}\\spad{^k} \\spad{c_}{\\spad{k},{}\\spad{i}} <x^i> \\spad{g}(\\spad{x}),{} where \\spad{z} acts on \\spad{g}(\\spad{x}) by shifting. In fact,{} the result is [0,{}0,{}0,{}...]")) (|DiffAction| ((|#1| (|NonNegativeInteger|) (|NonNegativeInteger|) |#2|) "\\spad{DiffAction(k,{} l,{} g)} gives the coefficient of \\spad{x^k} in \\spad{z^l} \\spad{g}(\\spad{x}),{} where \\spad{z*}(a+b*x+c*x^2+d*x^3+...) = (a*x+b*x^2+c*x^3+...),{} \\spadignore{i.e.} multiplication with \\spad{x}.")) (|ShiftC| (((|List| |#1|) (|NonNegativeInteger|)) "\\spad{ShiftC} gives the coefficients \\spad{c_}{\\spad{k},{}\\spad{k}} in the expansion <x^k> \\spad{z} \\spad{g}(\\spad{x}) = sum_{\\spad{i=0}}\\spad{^k} \\spad{c_}{\\spad{k},{}\\spad{i}} <x^i> \\spad{g}(\\spad{x}),{} where \\spad{z} acts on \\spad{g}(\\spad{x}) by shifting. In fact,{} the result is [0,{}1,{}2,{}...]")) (|ShiftAction| ((|#1| (|NonNegativeInteger|) (|NonNegativeInteger|) |#2|) "\\spad{ShiftAction(k,{} l,{} g)} gives the coefficient of \\spad{x^k} in \\spad{z^l} \\spad{g}(\\spad{x}),{} where \\spad{z*(a+b*x+c*x^2+d*x^3+...) = (b*x+2*c*x^2+3*d*x^3+...)}. In terms of sequences,{} z*u(\\spad{n})=n*u(\\spad{n}).")) (|generalCoefficient| ((|#1| (|Mapping| |#1| (|NonNegativeInteger|) (|NonNegativeInteger|) |#2|) (|Vector| |#2|) (|NonNegativeInteger|) (|Vector| (|SparseUnivariatePolynomial| |#1|))) "\\spad{generalCoefficient(action,{} f,{} k,{} p)} gives the coefficient of \\spad{x^k} in \\spad{p}(\\spad{z})\\dot \\spad{f}(\\spad{x}),{} where the \\spad{action} of \\spad{z^l} on a polynomial in \\spad{x} is given by \\spad{action},{} \\spadignore{i.e.} \\spad{action}(\\spad{k},{} \\spad{l},{} \\spad{f}) should return the coefficient of \\spad{x^k} in \\spad{z^l} \\spad{f}(\\spad{x}).")) (|generalInterpolation| (((|Stream| (|Matrix| (|SparseUnivariatePolynomial| |#1|))) (|List| |#1|) (|Mapping| |#1| (|NonNegativeInteger|) (|NonNegativeInteger|) |#2|) (|Vector| |#2|) (|NonNegativeInteger|) (|NonNegativeInteger|)) "\\spad{generalInterpolation(C,{} CA,{} f,{} sumEta,{} maxEta)} applies \\spad{generalInterpolation(C,{} CA,{} f,{} eta)} for all possible \\spad{eta} with maximal entry \\spad{maxEta} and sum of entries at most \\spad{sumEta}. \\blankline The first argument \\spad{C} is the list of coefficients \\spad{c_}{\\spad{k},{}\\spad{k}} in the expansion <x^k> \\spad{z} \\spad{g}(\\spad{x}) = sum_{\\spad{i=0}}\\spad{^k} \\spad{c_}{\\spad{k},{}\\spad{i}} <x^i> \\spad{g}(\\spad{x}). \\blankline The second argument,{} \\spad{CA}(\\spad{k},{} \\spad{l},{} \\spad{f}),{} should return the coefficient of \\spad{x^k} in \\spad{z^l} \\spad{f}(\\spad{x}).") (((|Matrix| (|SparseUnivariatePolynomial| |#1|)) (|List| |#1|) (|Mapping| |#1| (|NonNegativeInteger|) (|NonNegativeInteger|) |#2|) (|Vector| |#2|) (|List| (|NonNegativeInteger|))) "\\spad{generalInterpolation(C,{} CA,{} f,{} eta)} performs Hermite-Pade approximation using the given action \\spad{CA} of polynomials on the elements of \\spad{f}. The result is guaranteed to be correct up to order |eta|-1. Given that eta is a \"normal\" point,{} the degrees on the diagonal are given by eta. The degrees of column \\spad{i} are in this case eta + \\spad{e}.\\spad{i} - [1,{}1,{}...,{}1],{} where the degree of zero is \\spad{-1}. \\blankline The first argument \\spad{C} is the list of coefficients \\spad{c_}{\\spad{k},{}\\spad{k}} in the expansion <x^k> \\spad{z} \\spad{g}(\\spad{x}) = sum_{\\spad{i=0}}\\spad{^k} \\spad{c_}{\\spad{k},{}\\spad{i}} <x^i> \\spad{g}(\\spad{x}). \\blankline The second argument,{} \\spad{CA}(\\spad{k},{} \\spad{l},{} \\spad{f}),{} should return the coefficient of \\spad{x^k} in \\spad{z^l} \\spad{f}(\\spad{x}).")) (|interpolate| (((|Fraction| (|SparseUnivariatePolynomial| |#1|)) (|List| (|Fraction| |#1|)) (|List| (|Fraction| |#1|)) (|NonNegativeInteger|)) "\\spad{interpolate(xlist,{} ylist,{} deg} returns the rational function with numerator degree \\spad{deg} that interpolates the given points using fraction free arithmetic.") (((|Fraction| (|SparseUnivariatePolynomial| |#1|)) (|List| |#1|) (|List| |#1|) (|NonNegativeInteger|)) "\\spad{interpolate(xlist,{} ylist,{} deg} returns the rational function with numerator degree at most \\spad{deg} and denominator degree at most \\spad{\\#xlist-deg-1} that interpolates the given points using fraction free arithmetic. Note that rational interpolation does not guarantee that all given points are interpolated correctly: unattainable points may make this impossible.")) (|fffg| (((|Matrix| (|SparseUnivariatePolynomial| |#1|)) (|List| |#1|) (|Mapping| |#1| (|NonNegativeInteger|) (|Vector| (|SparseUnivariatePolynomial| |#1|))) (|List| (|NonNegativeInteger|))) "\\spad{fffg} is the general algorithm as proposed by Beckermann and Labahn. \\blankline The first argument is the list of \\spad{c_}{\\spad{i},{}\\spad{i}}. These are the only values of \\spad{C} explicitely needed in \\spad{fffg}. \\blankline The second argument \\spad{c},{} computes \\spad{c_k}(\\spad{M}),{} \\spadignore{i.e.} \\spad{c_k}(.) is the dual basis of the vector space \\spad{V},{} but also knows about the special multiplication rule as descibed in Equation (2). Note that the information about \\spad{f} is therefore encoded in \\spad{c}. \\blankline The third argument is the vector of degree bounds \\spad{n},{} as introduced in Definition 2.1. In particular,{} the sum of the entries is the order of the Mahler system computed."))) 
 NIL 
 NIL 
@@ -1330,7 +1330,7 @@ NIL
 NIL 
 (-350) 
 ((|constructor| (NIL "FiniteFieldCategory is the category of finite fields")) (|representationType| (((|Union| "prime" "polynomial" "normal" "cyclic")) "\\spad{representationType()} returns the type of the representation,{} one of: \\spad{prime},{} \\spad{polynomial},{} \\spad{normal},{} or \\spad{cyclic}.")) (|order| (((|PositiveInteger|) $) "\\spad{order(b)} computes the order of an element \\spad{b} in the multiplicative group of the field. Error: if \\spad{b} equals 0.")) (|discreteLog| (((|NonNegativeInteger|) $) "\\spad{discreteLog(a)} computes the discrete logarithm of \\spad{a} with respect to \\spad{primitiveElement()} of the field.")) (|primitive?| (((|Boolean|) $) "\\spad{primitive?(b)} tests whether the element \\spad{b} is a generator of the (cyclic) multiplicative group of the field,{} \\spadignore{i.e.} is a primitive element. Implementation Note that see \\spad{ch}.IX.1.3,{} th.2 in \\spad{D}. Lipson.")) (|primitiveElement| (($) "\\spad{primitiveElement()} returns a primitive element stored in a global variable in the domain. At first call,{} the primitive element is computed by calling \\spadfun{createPrimitiveElement}.")) (|createPrimitiveElement| (($) "\\spad{createPrimitiveElement()} computes a generator of the (cyclic) multiplicative group of the field.")) (|tableForDiscreteLogarithm| (((|Table| (|PositiveInteger|) (|NonNegativeInteger|)) (|Integer|)) "\\spad{tableForDiscreteLogarithm(a,{}n)} returns a table of the discrete logarithms of \\spad{a**0} up to \\spad{a**(n-1)} which,{} called with key \\spad{lookup(a**i)} returns \\spad{i} for \\spad{i} in \\spad{0..n-1}. Error: if not called for prime divisors of order of \\indented{7}{multiplicative group.}")) (|factorsOfCyclicGroupSize| (((|List| (|Record| (|:| |factor| (|Integer|)) (|:| |exponent| (|Integer|))))) "\\spad{factorsOfCyclicGroupSize()} returns the factorization of size()\\spad{-1}")) (|conditionP| (((|Union| (|Vector| $) "failed") (|Matrix| $)) "\\spad{conditionP(mat)},{} given a matrix representing a homogeneous system of equations,{} returns a vector whose characteristic'th powers is a non-trivial solution,{} or \"failed\" if no such vector exists.")) (|charthRoot| (($ $) "\\spad{charthRoot(a)} takes the characteristic'th root of a. Note that such a root is alway defined in finite fields."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-351 R UP -1478) 
 ((|constructor| (NIL "Integral bases for function fields of dimension one In this package \\spad{R} is a Euclidean domain and \\spad{F} is a framed algebra over \\spad{R}. The package provides functions to compute the integral closure of \\spad{R} in the quotient field of \\spad{F}. It is assumed that \\spad{char(R/P) = char(R)} for any prime \\spad{P} of \\spad{R}. A typical instance of this is when \\spad{R = K[x]} and \\spad{F} is a function field over \\spad{R}.")) (|localIntegralBasis| (((|Record| (|:| |basis| (|Matrix| |#1|)) (|:| |basisDen| |#1|) (|:| |basisInv| (|Matrix| |#1|))) |#1|) "\\spad{integralBasis(p)} returns a record \\spad{[basis,{}basisDen,{}basisInv]} containing information regarding the local integral closure of \\spad{R} at the prime \\spad{p} in the quotient field of \\spad{F},{} where \\spad{F} is a framed algebra with \\spad{R}-module basis \\spad{w1,{}w2,{}...,{}wn}. If \\spad{basis} is the matrix \\spad{(aij,{} i = 1..n,{} j = 1..n)},{} then the \\spad{i}th element of the local integral basis is \\spad{\\spad{vi} = (1/basisDen) * sum(aij * wj,{} j = 1..n)},{} \\spadignore{i.e.} the \\spad{i}th row of \\spad{basis} contains the coordinates of the \\spad{i}th basis vector. Similarly,{} the \\spad{i}th row of the matrix \\spad{basisInv} contains the coordinates of \\spad{\\spad{wi}} with respect to the basis \\spad{v1,{}...,{}vn}: if \\spad{basisInv} is the matrix \\spad{(bij,{} i = 1..n,{} j = 1..n)},{} then \\spad{\\spad{wi} = sum(bij * vj,{} j = 1..n)}.")) (|integralBasis| (((|Record| (|:| |basis| (|Matrix| |#1|)) (|:| |basisDen| |#1|) (|:| |basisInv| (|Matrix| |#1|)))) "\\spad{integralBasis()} returns a record \\spad{[basis,{}basisDen,{}basisInv]} containing information regarding the integral closure of \\spad{R} in the quotient field of \\spad{F},{} where \\spad{F} is a framed algebra with \\spad{R}-module basis \\spad{w1,{}w2,{}...,{}wn}. If \\spad{basis} is the matrix \\spad{(aij,{} i = 1..n,{} j = 1..n)},{} then the \\spad{i}th element of the integral basis is \\spad{\\spad{vi} = (1/basisDen) * sum(aij * wj,{} j = 1..n)},{} \\spadignore{i.e.} the \\spad{i}th row of \\spad{basis} contains the coordinates of the \\spad{i}th basis vector. Similarly,{} the \\spad{i}th row of the matrix \\spad{basisInv} contains the coordinates of \\spad{\\spad{wi}} with respect to the basis \\spad{v1,{}...,{}vn}: if \\spad{basisInv} is the matrix \\spad{(bij,{} i = 1..n,{} j = 1..n)},{} then \\spad{\\spad{wi} = sum(bij * vj,{} j = 1..n)}.")) (|squareFree| (((|Factored| $) $) "\\spad{squareFree(x)} returns a square-free factorisation of \\spad{x}"))) 
@@ -1338,24 +1338,24 @@ NIL
 NIL 
 (-352 |p| |extdeg|) 
 ((|constructor| (NIL "FiniteFieldNormalBasis(\\spad{p},{}\\spad{n}) implements a finite extension field of degree \\spad{n} over the prime field with \\spad{p} elements. The elements are represented by coordinate vectors with respect to a normal basis,{} \\spadignore{i.e.} a basis consisting of the conjugates (\\spad{q}-powers) of an element,{} in this case called normal element. This is chosen as a root of the extension polynomial created by createNormalPoly")) (|sizeMultiplication| (((|NonNegativeInteger|)) "\\spad{sizeMultiplication()} returns the number of entries in the multiplication table of the field. Note: The time of multiplication of field elements depends on this size.")) (|getMultiplicationMatrix| (((|Matrix| (|PrimeField| |#1|))) "\\spad{getMultiplicationMatrix()} returns the multiplication table in form of a matrix.")) (|getMultiplicationTable| (((|Vector| (|List| (|Record| (|:| |value| (|PrimeField| |#1|)) (|:| |index| (|SingleInteger|)))))) "\\spad{getMultiplicationTable()} returns the multiplication table for the normal basis of the field. This table is used to perform multiplications between field elements."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| (-905 |#1|) (QUOTE (-150))) (|HasCategory| (-905 |#1|) (QUOTE (-370))) (|HasCategory| (-905 |#1|) (QUOTE (-148))) (-2198 (|HasCategory| (-905 |#1|) (QUOTE (-148))) (|HasCategory| (-905 |#1|) (QUOTE (-370))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| (-905 |#1|) (QUOTE (-150))) (|HasCategory| (-905 |#1|) (QUOTE (-370))) (|HasCategory| (-905 |#1|) (QUOTE (-148))) (-2199 (|HasCategory| (-905 |#1|) (QUOTE (-148))) (|HasCategory| (-905 |#1|) (QUOTE (-370))))) 
 (-353 GF |uni|) 
 ((|constructor| (NIL "FiniteFieldNormalBasisExtensionByPolynomial(\\spad{GF},{}uni) implements a finite extension of the ground field \\spad{GF}. The elements are represented by coordinate vectors with respect to. a normal basis,{} \\spadignore{i.e.} a basis consisting of the conjugates (\\spad{q}-powers) of an element,{} in this case called normal element,{} where \\spad{q} is the size of \\spad{GF}. The normal element is chosen as a root of the extension polynomial,{} which MUST be normal over \\spad{GF} (user responsibility)")) (|sizeMultiplication| (((|NonNegativeInteger|)) "\\spad{sizeMultiplication()} returns the number of entries in the multiplication table of the field. Note: the time of multiplication of field elements depends on this size.")) (|getMultiplicationMatrix| (((|Matrix| |#1|)) "\\spad{getMultiplicationMatrix()} returns the multiplication table in form of a matrix.")) (|getMultiplicationTable| (((|Vector| (|List| (|Record| (|:| |value| |#1|) (|:| |index| (|SingleInteger|)))))) "\\spad{getMultiplicationTable()} returns the multiplication table for the normal basis of the field. This table is used to perform multiplications between field elements."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (QUOTE (-148))) (-2198 (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-370))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (QUOTE (-148))) (-2199 (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-370))))) 
 (-354 GF |extdeg|) 
 ((|constructor| (NIL "FiniteFieldNormalBasisExtensionByPolynomial(\\spad{GF},{}\\spad{n}) implements a finite extension field of degree \\spad{n} over the ground field \\spad{GF}. The elements are represented by coordinate vectors with respect to a normal basis,{} \\spadignore{i.e.} a basis consisting of the conjugates (\\spad{q}-powers) of an element,{} in this case called normal element. This is chosen as a root of the extension polynomial,{} created by createNormalPoly from \\spadtype{FiniteFieldPolynomialPackage}")) (|sizeMultiplication| (((|NonNegativeInteger|)) "\\spad{sizeMultiplication()} returns the number of entries in the multiplication table of the field. Note: the time of multiplication of field elements depends on this size.")) (|getMultiplicationMatrix| (((|Matrix| |#1|)) "\\spad{getMultiplicationMatrix()} returns the multiplication table in form of a matrix.")) (|getMultiplicationTable| (((|Vector| (|List| (|Record| (|:| |value| |#1|) (|:| |index| (|SingleInteger|)))))) "\\spad{getMultiplicationTable()} returns the multiplication table for the normal basis of the field. This table is used to perform multiplications between field elements."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (QUOTE (-148))) (-2198 (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-370))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (QUOTE (-148))) (-2199 (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-370))))) 
 (-355 |p| |n|) 
 ((|constructor| (NIL "FiniteField(\\spad{p},{}\\spad{n}) implements finite fields with p**n elements. This packages checks that \\spad{p} is prime. For a non-checking version,{} see \\spadtype{InnerFiniteField}."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| (-905 |#1|) (QUOTE (-150))) (|HasCategory| (-905 |#1|) (QUOTE (-370))) (|HasCategory| (-905 |#1|) (QUOTE (-148))) (-2198 (|HasCategory| (-905 |#1|) (QUOTE (-148))) (|HasCategory| (-905 |#1|) (QUOTE (-370))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| (-905 |#1|) (QUOTE (-150))) (|HasCategory| (-905 |#1|) (QUOTE (-370))) (|HasCategory| (-905 |#1|) (QUOTE (-148))) (-2199 (|HasCategory| (-905 |#1|) (QUOTE (-148))) (|HasCategory| (-905 |#1|) (QUOTE (-370))))) 
 (-356 GF |defpol|) 
 ((|constructor| (NIL "FiniteFieldExtensionByPolynomial(\\spad{GF},{} defpol) implements the extension of the finite field \\spad{GF} generated by the extension polynomial defpol which MUST be irreducible."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (QUOTE (-148))) (-2198 (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-370))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (QUOTE (-148))) (-2199 (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-370))))) 
 (-357 -1478 GF) 
 ((|constructor| (NIL "\\spad{FiniteFieldPolynomialPackage2}(\\spad{F},{}\\spad{GF}) exports some functions concerning finite fields,{} which depend on a finite field \\spad{GF} and an algebraic extension \\spad{F} of \\spad{GF},{} \\spadignore{e.g.} a zero of a polynomial over \\spad{GF} in \\spad{F}.")) (|rootOfIrreduciblePoly| ((|#1| (|SparseUnivariatePolynomial| |#2|)) "\\spad{rootOfIrreduciblePoly(f)} computes one root of the monic,{} irreducible polynomial \\spad{f},{} which degree must divide the extension degree of \\spad{F} over \\spad{GF},{} \\spadignore{i.e.} \\spad{f} splits into linear factors over \\spad{F}.")) (|Frobenius| ((|#1| |#1|) "\\spad{Frobenius(x)} \\undocumented{}")) (|basis| (((|Vector| |#1|) (|PositiveInteger|)) "\\spad{basis(n)} \\undocumented{}")) (|lookup| (((|PositiveInteger|) |#1|) "\\spad{lookup(x)} \\undocumented{}")) (|coerce| ((|#1| |#2|) "\\spad{coerce(x)} \\undocumented{}"))) 
 NIL 
@@ -1374,15 +1374,15 @@ NIL
 NIL 
 (-361 GF |n|) 
 ((|constructor| (NIL "FiniteFieldExtensionByPolynomial(\\spad{GF},{} \\spad{n}) implements an extension of the finite field \\spad{GF} of degree \\spad{n} generated by the extension polynomial constructed by createIrreduciblePoly from \\spadtype{FiniteFieldPolynomialPackage}."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (QUOTE (-148))) (-2198 (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-370))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (QUOTE (-148))) (-2199 (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-370))))) 
 (-362 R |ls|) 
 ((|constructor| (NIL "This is just an interface between several packages and domains. The goal is to compute lexicographical Groebner bases of sets of polynomial with type \\spadtype{Polynomial R} by the FGLM algorithm if this is possible (\\spadignore{i.e.} if the input system generates a zero-dimensional ideal).")) (|groebner| (((|List| (|Polynomial| |#1|)) (|List| (|Polynomial| |#1|))) "\\axiom{groebner(\\spad{lq1})} returns the lexicographical Groebner basis of \\axiom{\\spad{lq1}}. If \\axiom{\\spad{lq1}} generates a zero-dimensional ideal then the FGLM strategy is used,{} otherwise the Sugar strategy is used.")) (|fglmIfCan| (((|Union| (|List| (|Polynomial| |#1|)) "failed") (|List| (|Polynomial| |#1|))) "\\axiom{fglmIfCan(\\spad{lq1})} returns the lexicographical Groebner basis of \\axiom{\\spad{lq1}} by using the FGLM strategy,{} if \\axiom{zeroDimensional?(\\spad{lq1})} holds.")) (|zeroDimensional?| (((|Boolean|) (|List| (|Polynomial| |#1|))) "\\axiom{zeroDimensional?(\\spad{lq1})} returns \\spad{true} iff \\axiom{\\spad{lq1}} generates a zero-dimensional ideal \\spad{w}.\\spad{r}.\\spad{t}. the variables of \\axiom{\\spad{ls}}."))) 
 NIL 
 NIL 
 (-363 S) 
 ((|constructor| (NIL "The free group on a set \\spad{S} is the group of finite products of the form \\spad{reduce(*,{}[\\spad{si} ** \\spad{ni}])} where the \\spad{si}\\spad{'s} are in \\spad{S},{} and the \\spad{ni}\\spad{'s} are integers. The multiplication is not commutative.")) (|factors| (((|List| (|Record| (|:| |gen| |#1|) (|:| |exp| (|Integer|)))) $) "\\spad{factors(a1\\^e1,{}...,{}an\\^en)} returns \\spad{[[a1,{} e1],{}...,{}[an,{} en]]}.")) (|mapGen| (($ (|Mapping| |#1| |#1|) $) "\\spad{mapGen(f,{} a1\\^e1 ... an\\^en)} returns \\spad{f(a1)\\^e1 ... f(an)\\^en}.")) (|mapExpon| (($ (|Mapping| (|Integer|) (|Integer|)) $) "\\spad{mapExpon(f,{} a1\\^e1 ... an\\^en)} returns \\spad{a1\\^f(e1) ... an\\^f(en)}.")) (|nthFactor| ((|#1| $ (|Integer|)) "\\spad{nthFactor(x,{} n)} returns the factor of the n^th monomial of \\spad{x}.")) (|nthExpon| (((|Integer|) $ (|Integer|)) "\\spad{nthExpon(x,{} n)} returns the exponent of the n^th monomial of \\spad{x}.")) (|size| (((|NonNegativeInteger|) $) "\\spad{size(x)} returns the number of monomials in \\spad{x}.")) (** (($ |#1| (|Integer|)) "\\spad{s ** n} returns the product of \\spad{s} by itself \\spad{n} times.")) (* (($ $ |#1|) "\\spad{x * s} returns the product of \\spad{x} by \\spad{s} on the right.") (($ |#1| $) "\\spad{s * x} returns the product of \\spad{x} by \\spad{s} on the left."))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-364 S) 
 ((|constructor| (NIL "The category of commutative fields,{} \\spadignore{i.e.} commutative rings where all non-zero elements have multiplicative inverses. The \\spadfun{factor} operation while trivial is useful to have defined. \\blankline Axioms\\spad{\\br} \\tab{5}\\spad{a*(b/a) = b}\\spad{\\br} \\tab{5}\\spad{inv(a) = 1/a}")) (|canonicalsClosed| ((|attribute|) "since \\spad{0*0=0},{} \\spad{1*1=1}")) (|canonicalUnitNormal| ((|attribute|) "either 0 or 1.")) (/ (($ $ $) "\\spad{x/y} divides the element \\spad{x} by the element \\spad{y}. Error: if \\spad{y} is 0."))) 
@@ -1390,7 +1390,7 @@ NIL
 NIL 
 (-365) 
 ((|constructor| (NIL "The category of commutative fields,{} \\spadignore{i.e.} commutative rings where all non-zero elements have multiplicative inverses. The \\spadfun{factor} operation while trivial is useful to have defined. \\blankline Axioms\\spad{\\br} \\tab{5}\\spad{a*(b/a) = b}\\spad{\\br} \\tab{5}\\spad{inv(a) = 1/a}")) (|canonicalsClosed| ((|attribute|) "since \\spad{0*0=0},{} \\spad{1*1=1}")) (|canonicalUnitNormal| ((|attribute|) "either 0 or 1.")) (/ (($ $ $) "\\spad{x/y} divides the element \\spad{x} by the element \\spad{y}. Error: if \\spad{y} is 0."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-366 |Name| S) 
 ((|constructor| (NIL "This category provides an interface to operate on files in the computer\\spad{'s} file system. The precise method of naming files is determined by the Name parameter. The type of the contents of the file is determined by \\spad{S}.")) (|flush| (((|Void|) $) "\\spad{flush(f)} makes sure that buffered data is written out")) (|write!| ((|#2| $ |#2|) "\\spad{write!(f,{}s)} puts the value \\spad{s} into the file \\spad{f}. The state of \\spad{f} is modified so subsequents call to \\spad{write!} will append one after another.")) (|read!| ((|#2| $) "\\spad{read!(f)} extracts a value from file \\spad{f}. The state of \\spad{f} is modified so a subsequent call to \\spadfun{read!} will return the next element.")) (|iomode| (((|String|) $) "\\spad{iomode(f)} returns the status of the file \\spad{f}. The input/output status of \\spad{f} may be \"input\",{} \"output\" or \"closed\" mode.")) (|name| ((|#1| $) "\\spad{name(f)} returns the external name of the file \\spad{f}.")) (|close!| (($ $) "\\spad{close!(f)} returns the file \\spad{f} closed to input and output.")) (|reopen!| (($ $ (|String|)) "\\spad{reopen!(f,{}mode)} returns a file \\spad{f} reopened for operation in the indicated mode: \"input\" or \"output\". \\spad{reopen!(f,{}\"input\")} will reopen the file \\spad{f} for input.")) (|open| (($ |#1| (|String|)) "\\spad{open(s,{}mode)} returns a file \\spad{s} open for operation in the indicated mode: \"input\" or \"output\".") (($ |#1|) "\\spad{open(s)} returns the file \\spad{s} open for input."))) 
@@ -1406,7 +1406,7 @@ NIL
 ((|HasCategory| |#2| (QUOTE (-558)))) 
 (-369 R) 
 ((|constructor| (NIL "A FiniteRankNonAssociativeAlgebra is a non associative algebra over a commutative ring \\spad{R} which is a free \\spad{R}-module of finite rank.")) (|unitsKnown| ((|attribute|) "unitsKnown means that \\spadfun{recip} truly yields reciprocal or \\spad{\"failed\"} if not a unit,{} similarly for \\spadfun{leftRecip} and \\spadfun{rightRecip}. The reason is that we use left,{} respectively right,{} minimal polynomials to decide this question.")) (|unit| (((|Union| $ "failed")) "\\spad{unit()} returns a unit of the algebra (necessarily unique),{} or \\spad{\"failed\"} if there is none.")) (|rightUnit| (((|Union| $ "failed")) "\\spad{rightUnit()} returns a right unit of the algebra (not necessarily unique),{} or \\spad{\"failed\"} if there is none.")) (|leftUnit| (((|Union| $ "failed")) "\\spad{leftUnit()} returns a left unit of the algebra (not necessarily unique),{} or \\spad{\"failed\"} if there is none.")) (|rightUnits| (((|Union| (|Record| (|:| |particular| $) (|:| |basis| (|List| $))) "failed")) "\\spad{rightUnits()} returns the affine space of all right units of the algebra,{} or \\spad{\"failed\"} if there is none.")) (|leftUnits| (((|Union| (|Record| (|:| |particular| $) (|:| |basis| (|List| $))) "failed")) "\\spad{leftUnits()} returns the affine space of all left units of the algebra,{} or \\spad{\"failed\"} if there is none.")) (|rightMinimalPolynomial| (((|SparseUnivariatePolynomial| |#1|) $) "\\spad{rightMinimalPolynomial(a)} returns the polynomial determined by the smallest non-trivial linear combination of right powers of \\spad{a}. Note that the polynomial never has a constant term as in general the algebra has no unit.")) (|leftMinimalPolynomial| (((|SparseUnivariatePolynomial| |#1|) $) "\\spad{leftMinimalPolynomial(a)} returns the polynomial determined by the smallest non-trivial linear combination of left powers of \\spad{a}. Note that the polynomial never has a constant term as in general the algebra has no unit.")) (|associatorDependence| (((|List| (|Vector| |#1|))) "\\spad{associatorDependence()} looks for the associator identities,{} \\spadignore{i.e.} finds a basis of the solutions of the linear combinations of the six permutations of \\spad{associator(a,{}b,{}c)} which yield 0,{} for all \\spad{a},{}\\spad{b},{}\\spad{c} in the algebra. The order of the permutations is \\spad{123 231 312 132 321 213}.")) (|rightRecip| (((|Union| $ "failed") $) "\\spad{rightRecip(a)} returns an element,{} which is a right inverse of \\spad{a},{} or \\spad{\"failed\"} if there is no unit element,{} if such an element doesn\\spad{'t} exist or cannot be determined (see unitsKnown).")) (|leftRecip| (((|Union| $ "failed") $) "\\spad{leftRecip(a)} returns an element,{} which is a left inverse of \\spad{a},{} or \\spad{\"failed\"} if there is no unit element,{} if such an element doesn\\spad{'t} exist or cannot be determined (see unitsKnown).")) (|recip| (((|Union| $ "failed") $) "\\spad{recip(a)} returns an element,{} which is both a left and a right inverse of \\spad{a},{} or \\spad{\"failed\"} if there is no unit element,{} if such an element doesn\\spad{'t} exist or cannot be determined (see unitsKnown).")) (|lieAlgebra?| (((|Boolean|)) "\\spad{lieAlgebra?()} tests if the algebra is anticommutative and \\spad{(a*b)*c + (b*c)*a + (c*a)*b = 0} for all \\spad{a},{}\\spad{b},{}\\spad{c} in the algebra (Jacobi identity). Example: for every associative algebra \\spad{(A,{}+,{}@)} we can construct a Lie algebra \\spad{(A,{}+,{}*)},{} where \\spad{a*b := a@b-b@a}.")) (|jordanAlgebra?| (((|Boolean|)) "\\spad{jordanAlgebra?()} tests if the algebra is commutative,{} characteristic is not 2,{} and \\spad{(a*b)*a**2 - a*(b*a**2) = 0} for all \\spad{a},{}\\spad{b},{}\\spad{c} in the algebra (Jordan identity). Example: for every associative algebra \\spad{(A,{}+,{}@)} we can construct a Jordan algebra \\spad{(A,{}+,{}*)},{} where \\spad{a*b := (a@b+b@a)/2}.")) (|noncommutativeJordanAlgebra?| (((|Boolean|)) "\\spad{noncommutativeJordanAlgebra?()} tests if the algebra is flexible and Jordan admissible.")) (|jordanAdmissible?| (((|Boolean|)) "\\spad{jordanAdmissible?()} tests if 2 is invertible in the coefficient domain and the multiplication defined by \\spad{(1/2)(a*b+b*a)} determines a Jordan algebra,{} \\spadignore{i.e.} satisfies the Jordan identity. The property of \\spadatt{commutative(\\spad{\"*\"})} follows from by definition.")) (|lieAdmissible?| (((|Boolean|)) "\\spad{lieAdmissible?()} tests if the algebra defined by the commutators is a Lie algebra,{} \\spadignore{i.e.} satisfies the Jacobi identity. The property of anticommutativity follows from definition.")) (|jacobiIdentity?| (((|Boolean|)) "\\spad{jacobiIdentity?()} tests if \\spad{(a*b)*c + (b*c)*a + (c*a)*b = 0} for all \\spad{a},{}\\spad{b},{}\\spad{c} in the algebra. For example,{} this holds for crossed products of 3-dimensional vectors.")) (|powerAssociative?| (((|Boolean|)) "\\spad{powerAssociative?()} tests if all subalgebras generated by a single element are associative.")) (|alternative?| (((|Boolean|)) "\\spad{alternative?()} tests if \\spad{2*associator(a,{}a,{}b) = 0 = 2*associator(a,{}b,{}b)} for all \\spad{a},{} \\spad{b} in the algebra. Note that we only can test this; in general we don\\spad{'t} know whether \\spad{2*a=0} implies \\spad{a=0}.")) (|flexible?| (((|Boolean|)) "\\spad{flexible?()} tests if \\spad{2*associator(a,{}b,{}a) = 0} for all \\spad{a},{} \\spad{b} in the algebra. Note that we only can test this; in general we don\\spad{'t} know whether \\spad{2*a=0} implies \\spad{a=0}.")) (|rightAlternative?| (((|Boolean|)) "\\spad{rightAlternative?()} tests if \\spad{2*associator(a,{}b,{}b) = 0} for all \\spad{a},{} \\spad{b} in the algebra. Note that we only can test this; in general we don\\spad{'t} know whether \\spad{2*a=0} implies \\spad{a=0}.")) (|leftAlternative?| (((|Boolean|)) "\\spad{leftAlternative?()} tests if \\spad{2*associator(a,{}a,{}b) = 0} for all \\spad{a},{} \\spad{b} in the algebra. Note that we only can test this; in general we don\\spad{'t} know whether \\spad{2*a=0} implies \\spad{a=0}.")) (|antiAssociative?| (((|Boolean|)) "\\spad{antiAssociative?()} tests if multiplication in algebra is anti-associative,{} \\spadignore{i.e.} \\spad{(a*b)*c + a*(b*c) = 0} for all \\spad{a},{}\\spad{b},{}\\spad{c} in the algebra.")) (|associative?| (((|Boolean|)) "\\spad{associative?()} tests if multiplication in algebra is associative.")) (|antiCommutative?| (((|Boolean|)) "\\spad{antiCommutative?()} tests if \\spad{a*a = 0} for all \\spad{a} in the algebra. Note that this implies \\spad{a*b + b*a = 0} for all \\spad{a} and \\spad{b}.")) (|commutative?| (((|Boolean|)) "\\spad{commutative?()} tests if multiplication in the algebra is commutative.")) (|rightCharacteristicPolynomial| (((|SparseUnivariatePolynomial| |#1|) $) "\\spad{rightCharacteristicPolynomial(a)} returns the characteristic polynomial of the right regular representation of \\spad{a} with respect to any basis.")) (|leftCharacteristicPolynomial| (((|SparseUnivariatePolynomial| |#1|) $) "\\spad{leftCharacteristicPolynomial(a)} returns the characteristic polynomial of the left regular representation of \\spad{a} with respect to any basis.")) (|rightTraceMatrix| (((|Matrix| |#1|) (|Vector| $)) "\\spad{rightTraceMatrix([v1,{}...,{}vn])} is the \\spad{n}-by-\\spad{n} matrix whose element at the \\spad{i}\\spad{-}th row and \\spad{j}\\spad{-}th column is given by the right trace of the product \\spad{vi*vj}.")) (|leftTraceMatrix| (((|Matrix| |#1|) (|Vector| $)) "\\spad{leftTraceMatrix([v1,{}...,{}vn])} is the \\spad{n}-by-\\spad{n} matrix whose element at the \\spad{i}\\spad{-}th row and \\spad{j}\\spad{-}th column is given by the left trace of the product \\spad{vi*vj}.")) (|rightDiscriminant| ((|#1| (|Vector| $)) "\\spad{rightDiscriminant([v1,{}...,{}vn])} returns the determinant of the \\spad{n}-by-\\spad{n} matrix whose element at the \\spad{i}\\spad{-}th row and \\spad{j}\\spad{-}th column is given by the right trace of the product \\spad{vi*vj}. Note that this is the same as \\spad{determinant(rightTraceMatrix([v1,{}...,{}vn]))}.")) (|leftDiscriminant| ((|#1| (|Vector| $)) "\\spad{leftDiscriminant([v1,{}...,{}vn])} returns the determinant of the \\spad{n}-by-\\spad{n} matrix whose element at the \\spad{i}\\spad{-}th row and \\spad{j}\\spad{-}th column is given by the left trace of the product \\spad{vi*vj}. Note that this is the same as \\spad{determinant(leftTraceMatrix([v1,{}...,{}vn]))}.")) (|represents| (($ (|Vector| |#1|) (|Vector| $)) "\\spad{represents([a1,{}...,{}am],{}[v1,{}...,{}vm])} returns the linear combination \\spad{a1*vm + ... + an*vm}.")) (|coordinates| (((|Matrix| |#1|) (|Vector| $) (|Vector| $)) "\\spad{coordinates([a1,{}...,{}am],{}[v1,{}...,{}vn])} returns a matrix whose \\spad{i}-th row is formed by the coordinates of \\spad{\\spad{ai}} with respect to the \\spad{R}-module basis \\spad{v1},{}...,{}\\spad{vn}.") (((|Vector| |#1|) $ (|Vector| $)) "\\spad{coordinates(a,{}[v1,{}...,{}vn])} returns the coordinates of \\spad{a} with respect to the \\spad{R}-module basis \\spad{v1},{}...,{}\\spad{vn}.")) (|rightNorm| ((|#1| $) "\\spad{rightNorm(a)} returns the determinant of the right regular representation of \\spad{a}.")) (|leftNorm| ((|#1| $) "\\spad{leftNorm(a)} returns the determinant of the left regular representation of \\spad{a}.")) (|rightTrace| ((|#1| $) "\\spad{rightTrace(a)} returns the trace of the right regular representation of \\spad{a}.")) (|leftTrace| ((|#1| $) "\\spad{leftTrace(a)} returns the trace of the left regular representation of \\spad{a}.")) (|rightRegularRepresentation| (((|Matrix| |#1|) $ (|Vector| $)) "\\spad{rightRegularRepresentation(a,{}[v1,{}...,{}vn])} returns the matrix of the linear map defined by right multiplication by \\spad{a} with respect to the \\spad{R}-module basis \\spad{[v1,{}...,{}vn]}.")) (|leftRegularRepresentation| (((|Matrix| |#1|) $ (|Vector| $)) "\\spad{leftRegularRepresentation(a,{}[v1,{}...,{}vn])} returns the matrix of the linear map defined by left multiplication by \\spad{a} with respect to the \\spad{R}-module basis \\spad{[v1,{}...,{}vn]}.")) (|structuralConstants| (((|Vector| (|Matrix| |#1|)) (|Vector| $)) "\\spad{structuralConstants([v1,{}v2,{}...,{}vm])} calculates the structural constants \\spad{[(gammaijk) for k in 1..m]} defined by \\spad{\\spad{vi} * vj = gammaij1 * v1 + ... + gammaijm * vm},{} where \\spad{[v1,{}...,{}vm]} is an \\spad{R}-module basis of a subalgebra.")) (|conditionsForIdempotents| (((|List| (|Polynomial| |#1|)) (|Vector| $)) "\\spad{conditionsForIdempotents([v1,{}...,{}vn])} determines a complete list of polynomial equations for the coefficients of idempotents with respect to the \\spad{R}-module basis \\spad{v1},{}...,{}\\spad{vn}.")) (|rank| (((|PositiveInteger|)) "\\spad{rank()} returns the rank of the algebra as \\spad{R}-module.")) (|someBasis| (((|Vector| $)) "\\spad{someBasis()} returns some \\spad{R}-module basis."))) 
-((-4516 |has| |#1| (-558)) (-4514 . T) (-4513 . T)) 
+((-4518 |has| |#1| (-558)) (-4516 . T) (-4515 . T)) 
 NIL 
 (-370) 
 ((|constructor| (NIL "The category of domains composed of a finite set of elements. We include the functions \\spadfun{lookup} and \\spadfun{index} to give a bijection between the finite set and an initial segment of positive integers. \\blankline")) (|random| (($) "\\spad{random()} returns a random element from the set.")) (|lookup| (((|PositiveInteger|) $) "\\spad{lookup(x)} returns a positive integer such that \\spad{x = index lookup x}.")) (|index| (($ (|PositiveInteger|)) "\\spad{index(i)} takes a positive integer \\spad{i} less than or equal to \\spad{size()} and returns the \\spad{i}\\spad{-}th element of the set. This operation establishs a bijection between the elements of the finite set and \\spad{1..size()}.")) (|size| (((|NonNegativeInteger|)) "\\spad{size()} returns the number of elements in the set."))) 
@@ -1418,7 +1418,7 @@ NIL
 ((|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (QUOTE (-365)))) 
 (-372 R UP) 
 ((|constructor| (NIL "A FiniteRankAlgebra is an algebra over a commutative ring \\spad{R} which is a free \\spad{R}-module of finite rank.")) (|minimalPolynomial| ((|#2| $) "\\spad{minimalPolynomial(a)} returns the minimal polynomial of \\spad{a}.")) (|characteristicPolynomial| ((|#2| $) "\\spad{characteristicPolynomial(a)} returns the characteristic polynomial of the regular representation of \\spad{a} with respect to any basis.")) (|traceMatrix| (((|Matrix| |#1|) (|Vector| $)) "\\spad{traceMatrix([v1,{}..,{}vn])} is the \\spad{n}-by-\\spad{n} matrix ( \\spad{Tr}(\\spad{vi} * \\spad{vj}) )")) (|discriminant| ((|#1| (|Vector| $)) "\\spad{discriminant([v1,{}..,{}vn])} returns \\spad{determinant(traceMatrix([v1,{}..,{}vn]))}.")) (|represents| (($ (|Vector| |#1|) (|Vector| $)) "\\spad{represents([a1,{}..,{}an],{}[v1,{}..,{}vn])} returns \\spad{a1*v1+...+an*vn}.")) (|coordinates| (((|Matrix| |#1|) (|Vector| $) (|Vector| $)) "\\spad{coordinates([v1,{}...,{}vm],{} basis)} returns the coordinates of the \\spad{vi}\\spad{'s} with to the basis \\spad{basis}. The coordinates of \\spad{vi} are contained in the \\spad{i}th row of the matrix returned by this function.") (((|Vector| |#1|) $ (|Vector| $)) "\\spad{coordinates(a,{}basis)} returns the coordinates of \\spad{a} with respect to the \\spad{basis} \\spad{basis}.")) (|norm| ((|#1| $) "\\spad{norm(a)} returns the determinant of the regular representation of \\spad{a} with respect to any basis.")) (|trace| ((|#1| $) "\\spad{trace(a)} returns the trace of the regular representation of \\spad{a} with respect to any basis.")) (|regularRepresentation| (((|Matrix| |#1|) $ (|Vector| $)) "\\spad{regularRepresentation(a,{}basis)} returns the matrix of the linear map defined by left multiplication by \\spad{a} with respect to the \\spad{basis} \\spad{basis}.")) (|rank| (((|PositiveInteger|)) "\\spad{rank()} returns the rank of the algebra."))) 
-((-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-373 S A R B) 
 ((|constructor| (NIL "\\spad{FiniteLinearAggregateFunctions2} provides functions involving two FiniteLinearAggregates where the underlying domains might be different. An example of this might be creating a list of rational numbers by mapping a function across a list of integers where the function divides each integer by 1000.")) (|scan| ((|#4| (|Mapping| |#3| |#1| |#3|) |#2| |#3|) "\\spad{scan(f,{}a,{}r)} successively applies \\spad{reduce(f,{}x,{}r)} to more and more leading sub-aggregates \\spad{x} of aggregrate \\spad{a}. More precisely,{} if \\spad{a} is \\spad{[a1,{}a2,{}...]},{} then \\spad{scan(f,{}a,{}r)} returns \\spad{[reduce(f,{}[a1],{}r),{}reduce(f,{}[a1,{}a2],{}r),{}...]}.")) (|reduce| ((|#3| (|Mapping| |#3| |#1| |#3|) |#2| |#3|) "\\spad{reduce(f,{}a,{}r)} applies function \\spad{f} to each successive element of the aggregate \\spad{a} and an accumulant initialized to \\spad{r}. For example,{} \\spad{reduce(_+\\$Integer,{}[1,{}2,{}3],{}0)} does \\spad{3+(2+(1+0))}. Note that third argument \\spad{r} may be regarded as the identity element for the function \\spad{f}.")) (|map| ((|#4| (|Mapping| |#3| |#1|) |#2|) "\\spad{map(f,{}a)} applies function \\spad{f} to each member of aggregate \\spad{a} resulting in a new aggregate over a possibly different underlying domain."))) 
@@ -1427,14 +1427,14 @@ NIL
 (-374 A S) 
 ((|constructor| (NIL "A finite linear aggregate is a linear aggregate of finite length. The finite property of the aggregate adds several exports to the list of exports from \\spadtype{LinearAggregate} such as \\spadfun{reverse},{} \\spadfun{sort},{} and so on.")) (|sort!| (($ $) "\\spad{sort!(u)} returns \\spad{u} with its elements in ascending order.") (($ (|Mapping| (|Boolean|) |#2| |#2|) $) "\\spad{sort!(p,{}u)} returns \\spad{u} with its elements ordered by \\spad{p}.")) (|reverse!| (($ $) "\\spad{reverse!(u)} returns \\spad{u} with its elements in reverse order.")) (|copyInto!| (($ $ $ (|Integer|)) "\\spad{copyInto!(u,{}v,{}i)} returns aggregate \\spad{u} containing a copy of \\spad{v} inserted at element \\spad{i}.")) (|position| (((|Integer|) |#2| $ (|Integer|)) "\\spad{position(x,{}a,{}n)} returns the index \\spad{i} of the first occurrence of \\spad{x} in \\axiom{a} where \\axiom{\\spad{i} \\spad{>=} \\spad{n}},{} and \\axiom{minIndex(a) - 1} if no such \\spad{x} is found.") (((|Integer|) |#2| $) "\\spad{position(x,{}a)} returns the index \\spad{i} of the first occurrence of \\spad{x} in a,{} and \\axiom{minIndex(a) - 1} if there is no such \\spad{x}.") (((|Integer|) (|Mapping| (|Boolean|) |#2|) $) "\\spad{position(p,{}a)} returns the index \\spad{i} of the first \\spad{x} in \\axiom{a} such that \\axiom{\\spad{p}(\\spad{x})} is \\spad{true},{} and \\axiom{minIndex(a) - 1} if there is no such \\spad{x}.")) (|sorted?| (((|Boolean|) $) "\\spad{sorted?(u)} tests if the elements of \\spad{u} are in ascending order.") (((|Boolean|) (|Mapping| (|Boolean|) |#2| |#2|) $) "\\spad{sorted?(p,{}a)} tests if \\axiom{a} is sorted according to predicate \\spad{p}.")) (|sort| (($ $) "\\spad{sort(u)} returns an \\spad{u} with elements in ascending order. Note that \\axiom{sort(\\spad{u}) = sort(\\spad{<=},{}\\spad{u})}.") (($ (|Mapping| (|Boolean|) |#2| |#2|) $) "\\spad{sort(p,{}a)} returns a copy of \\axiom{a} sorted using total ordering predicate \\spad{p}.")) (|reverse| (($ $) "\\spad{reverse(a)} returns a copy of \\axiom{a} with elements in reverse order.")) (|merge| (($ $ $) "\\spad{merge(u,{}v)} merges \\spad{u} and \\spad{v} in ascending order. Note that \\axiom{merge(\\spad{u},{}\\spad{v}) = merge(\\spad{<=},{}\\spad{u},{}\\spad{v})}.") (($ (|Mapping| (|Boolean|) |#2| |#2|) $ $) "\\spad{merge(p,{}a,{}b)} returns an aggregate \\spad{c} which merges \\axiom{a} and \\spad{b}. The result is produced by examining each element \\spad{x} of \\axiom{a} and \\spad{y} of \\spad{b} successively. If \\axiom{\\spad{p}(\\spad{x},{}\\spad{y})} is \\spad{true},{} then \\spad{x} is inserted into the result; otherwise \\spad{y} is inserted. If \\spad{x} is chosen,{} the next element of \\axiom{a} is examined,{} and so on. When all the elements of one aggregate are examined,{} the remaining elements of the other are appended. For example,{} \\axiom{merge(<,{}[1,{}3],{}[2,{}7,{}5])} returns \\axiom{[1,{}2,{}3,{}7,{}5]}."))) 
 NIL 
-((|HasAttribute| |#1| (QUOTE -4520)) (|HasCategory| |#2| (QUOTE (-842))) (|HasCategory| |#2| (QUOTE (-1090)))) 
+((|HasAttribute| |#1| (QUOTE -4522)) (|HasCategory| |#2| (QUOTE (-842))) (|HasCategory| |#2| (QUOTE (-1090)))) 
 (-375 S) 
 ((|constructor| (NIL "A finite linear aggregate is a linear aggregate of finite length. The finite property of the aggregate adds several exports to the list of exports from \\spadtype{LinearAggregate} such as \\spadfun{reverse},{} \\spadfun{sort},{} and so on.")) (|sort!| (($ $) "\\spad{sort!(u)} returns \\spad{u} with its elements in ascending order.") (($ (|Mapping| (|Boolean|) |#1| |#1|) $) "\\spad{sort!(p,{}u)} returns \\spad{u} with its elements ordered by \\spad{p}.")) (|reverse!| (($ $) "\\spad{reverse!(u)} returns \\spad{u} with its elements in reverse order.")) (|copyInto!| (($ $ $ (|Integer|)) "\\spad{copyInto!(u,{}v,{}i)} returns aggregate \\spad{u} containing a copy of \\spad{v} inserted at element \\spad{i}.")) (|position| (((|Integer|) |#1| $ (|Integer|)) "\\spad{position(x,{}a,{}n)} returns the index \\spad{i} of the first occurrence of \\spad{x} in \\axiom{a} where \\axiom{\\spad{i} \\spad{>=} \\spad{n}},{} and \\axiom{minIndex(a) - 1} if no such \\spad{x} is found.") (((|Integer|) |#1| $) "\\spad{position(x,{}a)} returns the index \\spad{i} of the first occurrence of \\spad{x} in a,{} and \\axiom{minIndex(a) - 1} if there is no such \\spad{x}.") (((|Integer|) (|Mapping| (|Boolean|) |#1|) $) "\\spad{position(p,{}a)} returns the index \\spad{i} of the first \\spad{x} in \\axiom{a} such that \\axiom{\\spad{p}(\\spad{x})} is \\spad{true},{} and \\axiom{minIndex(a) - 1} if there is no such \\spad{x}.")) (|sorted?| (((|Boolean|) $) "\\spad{sorted?(u)} tests if the elements of \\spad{u} are in ascending order.") (((|Boolean|) (|Mapping| (|Boolean|) |#1| |#1|) $) "\\spad{sorted?(p,{}a)} tests if \\axiom{a} is sorted according to predicate \\spad{p}.")) (|sort| (($ $) "\\spad{sort(u)} returns an \\spad{u} with elements in ascending order. Note that \\axiom{sort(\\spad{u}) = sort(\\spad{<=},{}\\spad{u})}.") (($ (|Mapping| (|Boolean|) |#1| |#1|) $) "\\spad{sort(p,{}a)} returns a copy of \\axiom{a} sorted using total ordering predicate \\spad{p}.")) (|reverse| (($ $) "\\spad{reverse(a)} returns a copy of \\axiom{a} with elements in reverse order.")) (|merge| (($ $ $) "\\spad{merge(u,{}v)} merges \\spad{u} and \\spad{v} in ascending order. Note that \\axiom{merge(\\spad{u},{}\\spad{v}) = merge(\\spad{<=},{}\\spad{u},{}\\spad{v})}.") (($ (|Mapping| (|Boolean|) |#1| |#1|) $ $) "\\spad{merge(p,{}a,{}b)} returns an aggregate \\spad{c} which merges \\axiom{a} and \\spad{b}. The result is produced by examining each element \\spad{x} of \\axiom{a} and \\spad{y} of \\spad{b} successively. If \\axiom{\\spad{p}(\\spad{x},{}\\spad{y})} is \\spad{true},{} then \\spad{x} is inserted into the result; otherwise \\spad{y} is inserted. If \\spad{x} is chosen,{} the next element of \\axiom{a} is examined,{} and so on. When all the elements of one aggregate are examined,{} the remaining elements of the other are appended. For example,{} \\axiom{merge(<,{}[1,{}3],{}[2,{}7,{}5])} returns \\axiom{[1,{}2,{}3,{}7,{}5]}."))) 
-((-4519 . T) (-3973 . T)) 
+((-4521 . T) (-3973 . T)) 
 NIL 
 (-376 |VarSet| R) 
 ((|constructor| (NIL "The category of free Lie algebras. It is used by domains of non-commutative algebra: \\spadtype{LiePolynomial} and \\spadtype{XPBWPolynomial}.")) (|eval| (($ $ (|List| |#1|) (|List| $)) "\\axiom{eval(\\spad{p},{} [\\spad{x1},{}...,{}\\spad{xn}],{} [\\spad{v1},{}...,{}\\spad{vn}])} replaces \\axiom{\\spad{xi}} by \\axiom{\\spad{vi}} in \\axiom{\\spad{p}}.") (($ $ |#1| $) "\\axiom{eval(\\spad{p},{} \\spad{x},{} \\spad{v})} replaces \\axiom{\\spad{x}} by \\axiom{\\spad{v}} in \\axiom{\\spad{p}}.")) (|varList| (((|List| |#1|) $) "\\axiom{varList(\\spad{x})} returns the list of distinct entries of \\axiom{\\spad{x}}.")) (|trunc| (($ $ (|NonNegativeInteger|)) "\\axiom{trunc(\\spad{p},{}\\spad{n})} returns the polynomial \\axiom{\\spad{p}} truncated at order \\axiom{\\spad{n}}.")) (|mirror| (($ $) "\\axiom{mirror(\\spad{x})} returns \\axiom{Sum(r_i mirror(w_i))} if \\axiom{\\spad{x}} is \\axiom{Sum(r_i w_i)}.")) (|LiePoly| (($ (|LyndonWord| |#1|)) "\\axiom{LiePoly(\\spad{l})} returns the bracketed form of \\axiom{\\spad{l}} as a Lie polynomial.")) (|rquo| (((|XRecursivePolynomial| |#1| |#2|) (|XRecursivePolynomial| |#1| |#2|) $) "\\axiom{rquo(\\spad{x},{}\\spad{y})} returns the right simplification of \\axiom{\\spad{x}} by \\axiom{\\spad{y}}.")) (|lquo| (((|XRecursivePolynomial| |#1| |#2|) (|XRecursivePolynomial| |#1| |#2|) $) "\\axiom{lquo(\\spad{x},{}\\spad{y})} returns the left simplification of \\axiom{\\spad{x}} by \\axiom{\\spad{y}}.")) (|degree| (((|NonNegativeInteger|) $) "\\axiom{degree(\\spad{x})} returns the greatest length of a word in the support of \\axiom{\\spad{x}}.")) (|coerce| (((|XRecursivePolynomial| |#1| |#2|) $) "\\axiom{coerce(\\spad{x})} returns \\axiom{\\spad{x}} as a recursive polynomial.") (((|XDistributedPolynomial| |#1| |#2|) $) "\\axiom{coerce(\\spad{x})} returns \\axiom{\\spad{x}} as distributed polynomial.") (($ |#1|) "\\axiom{coerce(\\spad{x})} returns \\axiom{\\spad{x}} as a Lie polynomial.")) (|coef| ((|#2| (|XRecursivePolynomial| |#1| |#2|) $) "\\axiom{coef(\\spad{x},{}\\spad{y})} returns the scalar product of \\axiom{\\spad{x}} by \\axiom{\\spad{y}},{} the set of words being regarded as an orthogonal basis."))) 
-((|JacobiIdentity| . T) (|NullSquare| . T) (-4514 . T) (-4513 . T)) 
+((|JacobiIdentity| . T) (|NullSquare| . T) (-4516 . T) (-4515 . T)) 
 NIL 
 (-377 S V) 
 ((|constructor| (NIL "This package exports 3 sorting algorithms which work over FiniteLinearAggregates. Sort package (in-place) for shallowlyMutable Finite Linear Aggregates")) (|shellSort| ((|#2| (|Mapping| (|Boolean|) |#1| |#1|) |#2|) "\\spad{shellSort(f,{} agg)} sorts the aggregate agg with the ordering function \\spad{f} using the shellSort algorithm.")) (|heapSort| ((|#2| (|Mapping| (|Boolean|) |#1| |#1|) |#2|) "\\spad{heapSort(f,{} agg)} sorts the aggregate agg with the ordering function \\spad{f} using the heapsort algorithm.")) (|quickSort| ((|#2| (|Mapping| (|Boolean|) |#1| |#1|) |#2|) "\\spad{quickSort(f,{} agg)} sorts the aggregate agg with the ordering function \\spad{f} using the quicksort algorithm."))) 
@@ -1446,7 +1446,7 @@ NIL
 ((|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568))))) 
 (-379 R) 
 ((|constructor| (NIL "\\spad{S} is \\spadtype{FullyLinearlyExplicitRingOver R} means that \\spad{S} is a \\spadtype{LinearlyExplicitRingOver R} and,{} in addition,{} if \\spad{R} is a \\spadtype{LinearlyExplicitRingOver Integer},{} then so is \\spad{S}"))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-380 |Par|) 
 ((|constructor| (NIL "This is a package for the approximation of complex solutions for systems of equations of rational functions with complex rational coefficients. The results are expressed as either complex rational numbers or complex floats depending on the type of the precision parameter which can be either a rational number or a floating point number.")) (|complexRoots| (((|List| (|List| (|Complex| |#1|))) (|List| (|Fraction| (|Polynomial| (|Complex| (|Integer|))))) (|List| (|Symbol|)) |#1|) "\\spad{complexRoots(lrf,{} lv,{} eps)} finds all the complex solutions of a list of rational functions with rational number coefficients with respect the the variables appearing in \\spad{lv}. Each solution is computed to precision eps and returned as list corresponding to the order of variables in \\spad{lv}.") (((|List| (|Complex| |#1|)) (|Fraction| (|Polynomial| (|Complex| (|Integer|)))) |#1|) "\\spad{complexRoots(rf,{} eps)} finds all the complex solutions of a univariate rational function with rational number coefficients. The solutions are computed to precision eps.")) (|complexSolve| (((|List| (|Equation| (|Polynomial| (|Complex| |#1|)))) (|Equation| (|Fraction| (|Polynomial| (|Complex| (|Integer|))))) |#1|) "\\spad{complexSolve(eq,{}eps)} finds all the complex solutions of the equation \\spad{eq} of rational functions with rational rational coefficients with respect to all the variables appearing in \\spad{eq},{} with precision \\spad{eps}.") (((|List| (|Equation| (|Polynomial| (|Complex| |#1|)))) (|Fraction| (|Polynomial| (|Complex| (|Integer|)))) |#1|) "\\spad{complexSolve(p,{}eps)} find all the complex solutions of the rational function \\spad{p} with complex rational coefficients with respect to all the variables appearing in \\spad{p},{} with precision \\spad{eps}.") (((|List| (|List| (|Equation| (|Polynomial| (|Complex| |#1|))))) (|List| (|Equation| (|Fraction| (|Polynomial| (|Complex| (|Integer|)))))) |#1|) "\\spad{complexSolve(leq,{}eps)} finds all the complex solutions to precision \\spad{eps} of the system \\spad{leq} of equations of rational functions over complex rationals with respect to all the variables appearing in \\spad{lp}.") (((|List| (|List| (|Equation| (|Polynomial| (|Complex| |#1|))))) (|List| (|Fraction| (|Polynomial| (|Complex| (|Integer|))))) |#1|) "\\spad{complexSolve(lp,{}eps)} finds all the complex solutions to precision \\spad{eps} of the system \\spad{lp} of rational functions over the complex rationals with respect to all the variables appearing in \\spad{lp}."))) 
@@ -1454,7 +1454,7 @@ NIL
 NIL 
 (-381) 
 ((|constructor| (NIL "\\spadtype{Float} implements arbitrary precision floating point arithmetic. The number of significant digits of each operation can be set to an arbitrary value (the default is 20 decimal digits). The operation \\spad{float(mantissa,{}exponent,{}base)} for integer \\spad{mantissa},{} \\spad{exponent} specifies the number \\spad{mantissa * base ** exponent} The underlying representation for floats is binary not decimal. The implications of this are described below. \\blankline The model adopted is that arithmetic operations are rounded to to nearest unit in the last place,{} that is,{} accurate to within \\spad{2**(-bits)}. Also,{} the elementary functions and constants are accurate to one unit in the last place. A float is represented as a record of two integers,{} the mantissa and the exponent. The base of the representation is binary,{} hence a \\spad{Record(m:mantissa,{}e:exponent)} represents the number \\spad{m * 2 ** e}. Though it is not assumed that the underlying integers are represented with a binary base,{} the code will be most efficient when this is the the case (this is \\spad{true} in most implementations of Lisp). The decision to choose the base to be binary has some unfortunate consequences. First,{} decimal numbers like 0.3 cannot be represented exactly. Second,{} there is a further loss of accuracy during conversion to decimal for output. To compensate for this,{} if \\spad{d} digits of precision are specified,{} \\spad{1 + ceiling(log2 d)} bits are used. Two numbers that are displayed identically may therefore be not equal. On the other hand,{} a significant efficiency loss would be incurred if we chose to use a decimal base when the underlying integer base is binary. \\blankline Algorithms used: For the elementary functions,{} the general approach is to apply identities so that the taylor series can be used,{} and,{} so that it will converge within \\spad{O( sqrt n )} steps. For example,{} using the identity \\spad{exp(x) = exp(x/2)**2},{} we can compute \\spad{exp(1/3)} to \\spad{n} digits of precision as follows. We have \\spad{exp(1/3) = exp(2 ** (-sqrt s) / 3) ** (2 ** sqrt s)}. The taylor series will converge in less than sqrt \\spad{n} steps and the exponentiation requires sqrt \\spad{n} multiplications for a total of \\spad{2 sqrt n} multiplications. Assuming integer multiplication costs \\spad{O( n**2 )} the overall running time is \\spad{O( sqrt(n) n**2 )}. This approach is the best known approach for precisions up to about 10,{}000 digits at which point the methods of Brent which are \\spad{O( log(n) n**2 )} become competitive. Note also that summing the terms of the taylor series for the elementary functions is done using integer operations. This avoids the overhead of floating point operations and results in efficient code at low precisions. This implementation makes no attempt to reuse storage,{} relying on the underlying system to do \\spadgloss{garbage collection}. \\spad{I} estimate that the efficiency of this package at low precisions could be improved by a factor of 2 if in-place operations were available. \\blankline Running times: in the following,{} \\spad{n} is the number of bits of precision\\spad{\\br} \\spad{*},{} \\spad{/},{} \\spad{sqrt},{} \\spad{\\spad{pi}},{} \\spad{exp1},{} \\spad{log2},{} \\spad{log10}: \\spad{ O( n**2 )} \\spad{\\br} \\spad{exp},{} \\spad{log},{} \\spad{sin},{} \\spad{atan}: \\spad{O(sqrt(n) n**2)}\\spad{\\br} The other elementary functions are coded in terms of the ones above.")) (|outputSpacing| (((|Void|) (|NonNegativeInteger|)) "\\spad{outputSpacing(n)} inserts a space after \\spad{n} (default 10) digits on output; outputSpacing(0) means no spaces are inserted.")) (|outputGeneral| (((|Void|) (|NonNegativeInteger|)) "\\spad{outputGeneral(n)} sets the output mode to general notation with \\spad{n} significant digits displayed.") (((|Void|)) "\\spad{outputGeneral()} sets the output mode (default mode) to general notation; numbers will be displayed in either fixed or floating (scientific) notation depending on the magnitude.")) (|outputFixed| (((|Void|) (|NonNegativeInteger|)) "\\spad{outputFixed(n)} sets the output mode to fixed point notation,{} with \\spad{n} digits displayed after the decimal point.") (((|Void|)) "\\spad{outputFixed()} sets the output mode to fixed point notation; the output will contain a decimal point.")) (|outputFloating| (((|Void|) (|NonNegativeInteger|)) "\\spad{outputFloating(n)} sets the output mode to floating (scientific) notation with \\spad{n} significant digits displayed after the decimal point.") (((|Void|)) "\\spad{outputFloating()} sets the output mode to floating (scientific) notation,{} \\spadignore{i.e.} \\spad{mantissa * 10 exponent} is displayed as \\spad{0.mantissa E exponent}.")) (|convert| (($ (|DoubleFloat|)) "\\spad{convert(x)} converts a \\spadtype{DoubleFloat} \\spad{x} to a \\spadtype{Float}.")) (|atan| (($ $ $) "\\spad{atan(x,{}y)} computes the arc tangent from \\spad{x} with phase \\spad{y}.")) (|exp1| (($) "\\spad{exp1()} returns exp 1: \\spad{2.7182818284...}.")) (|log10| (($ $) "\\spad{log10(x)} computes the logarithm for \\spad{x} to base 10.") (($) "\\spad{log10()} returns \\spad{ln 10}: \\spad{2.3025809299...}.")) (|log2| (($ $) "\\spad{log2(x)} computes the logarithm for \\spad{x} to base 2.") (($) "\\spad{log2()} returns \\spad{ln 2},{} \\spadignore{i.e.} \\spad{0.6931471805...}.")) (|rationalApproximation| (((|Fraction| (|Integer|)) $ (|NonNegativeInteger|) (|NonNegativeInteger|)) "\\spad{rationalApproximation(f,{} n,{} b)} computes a rational approximation \\spad{r} to \\spad{f} with relative error \\spad{< b**(-n)},{} that is \\spad{|(r-f)/f| < b**(-n)}.") (((|Fraction| (|Integer|)) $ (|NonNegativeInteger|)) "\\spad{rationalApproximation(f,{} n)} computes a rational approximation \\spad{r} to \\spad{f} with relative error \\spad{< 10**(-n)}.")) (|shift| (($ $ (|Integer|)) "\\spad{shift(x,{}n)} adds \\spad{n} to the exponent of float \\spad{x}.")) (|relerror| (((|Integer|) $ $) "\\spad{relerror(x,{}y)} computes the absolute value of \\spad{x - y} divided by \\spad{y},{} when \\spad{y \\^= 0}.")) (|normalize| (($ $) "\\spad{normalize(x)} normalizes \\spad{x} at current precision.")) (** (($ $ $) "\\spad{x ** y} computes \\spad{exp(y log x)} where \\spad{x >= 0}.")) (/ (($ $ (|Integer|)) "\\spad{x / i} computes the division from \\spad{x} by an integer \\spad{i}."))) 
-((-4502 . T) (-4510 . T) (-3996 . T) (-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4504 . T) (-4512 . T) (-3999 . T) (-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-382 |Par|) 
 ((|constructor| (NIL "This is a package for the approximation of real solutions for systems of polynomial equations over the rational numbers. The results are expressed as either rational numbers or floats depending on the type of the precision parameter which can be either a rational number or a floating point number.")) (|realRoots| (((|List| |#1|) (|Fraction| (|Polynomial| (|Integer|))) |#1|) "\\spad{realRoots(rf,{} eps)} finds the real zeros of a univariate rational function with precision given by eps.") (((|List| (|List| |#1|)) (|List| (|Fraction| (|Polynomial| (|Integer|)))) (|List| (|Symbol|)) |#1|) "\\spad{realRoots(lp,{}lv,{}eps)} computes the list of the real solutions of the list \\spad{lp} of rational functions with rational coefficients with respect to the variables in \\spad{lv},{} with precision \\spad{eps}. Each solution is expressed as a list of numbers in order corresponding to the variables in \\spad{lv}.")) (|solve| (((|List| (|Equation| (|Polynomial| |#1|))) (|Equation| (|Fraction| (|Polynomial| (|Integer|)))) |#1|) "\\spad{solve(eq,{}eps)} finds all of the real solutions of the univariate equation \\spad{eq} of rational functions with respect to the unique variables appearing in \\spad{eq},{} with precision \\spad{eps}.") (((|List| (|Equation| (|Polynomial| |#1|))) (|Fraction| (|Polynomial| (|Integer|))) |#1|) "\\spad{solve(p,{}eps)} finds all of the real solutions of the univariate rational function \\spad{p} with rational coefficients with respect to the unique variable appearing in \\spad{p},{} with precision \\spad{eps}.") (((|List| (|List| (|Equation| (|Polynomial| |#1|)))) (|List| (|Equation| (|Fraction| (|Polynomial| (|Integer|))))) |#1|) "\\spad{solve(leq,{}eps)} finds all of the real solutions of the system \\spad{leq} of equationas of rational functions with respect to all the variables appearing in \\spad{lp},{} with precision \\spad{eps}.") (((|List| (|List| (|Equation| (|Polynomial| |#1|)))) (|List| (|Fraction| (|Polynomial| (|Integer|)))) |#1|) "\\spad{solve(lp,{}eps)} finds all of the real solutions of the system \\spad{lp} of rational functions over the rational numbers with respect to all the variables appearing in \\spad{lp},{} with precision \\spad{eps}."))) 
@@ -1462,11 +1462,11 @@ NIL
 NIL 
 (-383 R S) 
 ((|constructor| (NIL "This domain implements linear combinations of elements from the domain \\spad{S} with coefficients in the domain \\spad{R} where \\spad{S} is an ordered set and \\spad{R} is a ring (which may be non-commutative). This domain is used by domains of non-commutative algebra such as: XDistributedPolynomial,{} XRecursivePolynomial.")) (* (($ |#2| |#1|) "\\spad{s*r} returns the product \\spad{r*s} used by \\spadtype{XRecursivePolynomial}"))) 
-((-4514 . T) (-4513 . T)) 
+((-4516 . T) (-4515 . T)) 
 ((|HasCategory| |#1| (QUOTE (-172)))) 
 (-384 R |Basis|) 
 ((|constructor| (NIL "A domain of this category implements formal linear combinations of elements from a domain \\spad{Basis} with coefficients in a domain \\spad{R}. The domain \\spad{Basis} needs only to belong to the category \\spadtype{SetCategory} and \\spad{R} to the category \\spadtype{Ring}. Thus the coefficient ring may be non-commutative. See the \\spadtype{XDistributedPolynomial} constructor for examples of domains built with the \\spadtype{FreeModuleCat} category constructor.")) (|reductum| (($ $) "\\spad{reductum(x)} returns \\spad{x} minus its leading term.")) (|leadingTerm| (((|Record| (|:| |k| |#2|) (|:| |c| |#1|)) $) "\\spad{leadingTerm(x)} returns the first term which appears in \\spad{listOfTerms(x)}.")) (|leadingCoefficient| ((|#1| $) "\\spad{leadingCoefficient(x)} returns the first coefficient which appears in \\spad{listOfTerms(x)}.")) (|leadingMonomial| ((|#2| $) "\\spad{leadingMonomial(x)} returns the first element from \\spad{Basis} which appears in \\spad{listOfTerms(x)}.")) (|numberOfMonomials| (((|NonNegativeInteger|) $) "\\spad{numberOfMonomials(x)} returns the number of monomials of \\spad{x}.")) (|monomials| (((|List| $) $) "\\spad{monomials(x)} returns the list of \\spad{r_i*b_i} whose sum is \\spad{x}.")) (|coefficients| (((|List| |#1|) $) "\\spad{coefficients(x)} returns the list of coefficients of \\spad{x}")) (|listOfTerms| (((|List| (|Record| (|:| |k| |#2|) (|:| |c| |#1|))) $) "\\spad{listOfTerms(x)} returns a list \\spad{lt} of terms with type \\spad{Record(k: Basis,{} c: R)} such that \\spad{x} equals \\spad{reduce(+,{} map(x +-> monom(x.k,{} x.c),{} lt))}.")) (|monomial?| (((|Boolean|) $) "\\spad{monomial?(x)} returns \\spad{true} if \\spad{x} contains a single monomial.")) (|monom| (($ |#2| |#1|) "\\spad{monom(b,{}r)} returns the element with the single monomial \\indented{1}{\\spad{b} and coefficient \\spad{r}.}")) (|map| (($ (|Mapping| |#1| |#1|) $) "\\spad{map(fn,{}u)} maps function \\spad{fn} onto the coefficients \\indented{1}{of the non-zero monomials of \\spad{u}.}")) (|coefficient| ((|#1| $ |#2|) "\\spad{coefficient(x,{}b)} returns the coefficient of \\spad{b} in \\spad{x}.")) (* (($ |#1| |#2|) "\\spad{r*b} returns the product of \\spad{r} by \\spad{b}."))) 
-((-4514 . T) (-4513 . T)) 
+((-4516 . T) (-4515 . T)) 
 NIL 
 (-385) 
 ((|constructor| (NIL "\\axiomType{FortranMatrixCategory} provides support for producing Functions and Subroutines when the input to these is an AXIOM object of type \\axiomType{Matrix} or in domains involving \\axiomType{FortranCode}.")) (|coerce| (($ (|Record| (|:| |localSymbols| (|SymbolTable|)) (|:| |code| (|List| (|FortranCode|))))) "\\spad{coerce(e)} takes the component of \\spad{e} from \\spadtype{List FortranCode} and uses it as the body of the ASP,{} making the declarations in the \\spadtype{SymbolTable} component.") (($ (|FortranCode|)) "\\spad{coerce(e)} takes an object from \\spadtype{FortranCode} and \\indented{1}{uses it as the body of an ASP.}") (($ (|List| (|FortranCode|))) "\\spad{coerce(e)} takes an object from \\spadtype{List FortranCode} and \\indented{1}{uses it as the body of an ASP.}") (($ (|Matrix| (|MachineFloat|))) "\\spad{coerce(v)} produces an ASP which returns the value of \\spad{v}."))) 
@@ -1478,7 +1478,7 @@ NIL
 NIL 
 (-387 R S) 
 ((|constructor| (NIL "A \\spad{bi}-module is a free module over a ring with generators indexed by an ordered set. Each element can be expressed as a finite linear combination of generators. Only non-zero terms are stored."))) 
-((-4514 . T) (-4513 . T)) 
+((-4516 . T) (-4515 . T)) 
 ((|HasCategory| |#1| (QUOTE (-172)))) 
 (-388 S) 
 ((|constructor| (NIL "The free monoid on a set \\spad{S} is the monoid of finite products of the form \\spad{reduce(*,{}[\\spad{si} ** \\spad{ni}])} where the \\spad{si}\\spad{'s} are in \\spad{S},{} and the \\spad{ni}\\spad{'s} are nonnegative integers. The multiplication is not commutative.")) (|mapGen| (($ (|Mapping| |#1| |#1|) $) "\\spad{mapGen(f,{} a1\\^e1 ... an\\^en)} returns \\spad{f(a1)\\^e1 ... f(an)\\^en}.")) (|mapExpon| (($ (|Mapping| (|NonNegativeInteger|) (|NonNegativeInteger|)) $) "\\spad{mapExpon(f,{} a1\\^e1 ... an\\^en)} returns \\spad{a1\\^f(e1) ... an\\^f(en)}.")) (|nthFactor| ((|#1| $ (|Integer|)) "\\spad{nthFactor(x,{} n)} returns the factor of the n^th monomial of \\spad{x}.")) (|nthExpon| (((|NonNegativeInteger|) $ (|Integer|)) "\\spad{nthExpon(x,{} n)} returns the exponent of the n^th monomial of \\spad{x}.")) (|factors| (((|List| (|Record| (|:| |gen| |#1|) (|:| |exp| (|NonNegativeInteger|)))) $) "\\spad{factors(a1\\^e1,{}...,{}an\\^en)} returns \\spad{[[a1,{} e1],{}...,{}[an,{} en]]}.")) (|size| (((|NonNegativeInteger|) $) "\\spad{size(x)} returns the number of monomials in \\spad{x}.")) (|overlap| (((|Record| (|:| |lm| $) (|:| |mm| $) (|:| |rm| $)) $ $) "\\spad{overlap(x,{} y)} returns \\spad{[l,{} m,{} r]} such that \\spad{x = l * m},{} \\spad{y = m * r} and \\spad{l} and \\spad{r} have no overlap,{} \\spadignore{i.e.} \\spad{overlap(l,{} r) = [l,{} 1,{} r]}.")) (|divide| (((|Union| (|Record| (|:| |lm| $) (|:| |rm| $)) "failed") $ $) "\\spad{divide(x,{} y)} returns the left and right exact quotients of \\spad{x} by \\spad{y},{} \\spadignore{i.e.} \\spad{[l,{} r]} such that \\spad{x = l * y * r},{} \"failed\" if \\spad{x} is not of the form \\spad{l * y * r}.")) (|rquo| (((|Union| $ "failed") $ $) "\\spad{rquo(x,{} y)} returns the exact right quotient of \\spad{x} by \\spad{y} \\spadignore{i.e.} \\spad{q} such that \\spad{x = q * y},{} \"failed\" if \\spad{x} is not of the form \\spad{q * y}.")) (|lquo| (((|Union| $ "failed") $ $) "\\spad{lquo(x,{} y)} returns the exact left quotient of \\spad{x} by \\spad{y} \\spadignore{i.e.} \\spad{q} such that \\spad{x = y * q},{} \"failed\" if \\spad{x} is not of the form \\spad{y * q}.")) (|hcrf| (($ $ $) "\\spad{hcrf(x,{} y)} returns the highest common right factor of \\spad{x} and \\spad{y},{} \\spadignore{i.e.} the largest \\spad{d} such that \\spad{x = a d} and \\spad{y = b d}.")) (|hclf| (($ $ $) "\\spad{hclf(x,{} y)} returns the highest common left factor of \\spad{x} and \\spad{y},{} \\spadignore{i.e.} the largest \\spad{d} such that \\spad{x = d a} and \\spad{y = d b}.")) (** (($ |#1| (|NonNegativeInteger|)) "\\spad{s ** n} returns the product of \\spad{s} by itself \\spad{n} times.")) (* (($ $ |#1|) "\\spad{x * s} returns the product of \\spad{x} by \\spad{s} on the right.") (($ |#1| $) "\\spad{s * x} returns the product of \\spad{x} by \\spad{s} on the left."))) 
@@ -1486,7 +1486,7 @@ NIL
 ((|HasCategory| |#1| (QUOTE (-842)))) 
 (-389) 
 ((|constructor| (NIL "A category of domains which model machine arithmetic used by machines in the AXIOM-NAG link."))) 
-((-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-390) 
 ((|constructor| (NIL "This domain provides an interface to names in the file system."))) 
@@ -1498,7 +1498,7 @@ NIL
 NIL 
 (-392 |n| |class| R) 
 ((|constructor| (NIL "Generate the Free Lie Algebra over a ring \\spad{R} with identity; A \\spad{P}. Hall basis is generated by a package call to HallBasis.")) (|generator| (($ (|NonNegativeInteger|)) "\\spad{generator(i)} is the \\spad{i}th Hall Basis element")) (|shallowExpand| (((|OutputForm|) $) "\\spad{shallowExpand(x)} is not documented")) (|deepExpand| (((|OutputForm|) $) "\\spad{deepExpand(x)} is not documented")) (|dimension| (((|NonNegativeInteger|)) "\\spad{dimension()} is the rank of this Lie algebra"))) 
-((-4514 . T) (-4513 . T)) 
+((-4516 . T) (-4515 . T)) 
 NIL 
 (-393) 
 ((|constructor| (NIL "Code to manipulate Fortran Output Stack")) (|topFortranOutputStack| (((|String|)) "\\spad{topFortranOutputStack()} returns the top element of the Fortran output stack")) (|pushFortranOutputStack| (((|Void|) (|String|)) "\\spad{pushFortranOutputStack(f)} pushes \\spad{f} onto the Fortran output stack") (((|Void|) (|FileName|)) "\\spad{pushFortranOutputStack(f)} pushes \\spad{f} onto the Fortran output stack")) (|popFortranOutputStack| (((|Void|)) "\\spad{popFortranOutputStack()} pops the Fortran output stack")) (|showFortranOutputStack| (((|Stack| (|String|))) "\\spad{showFortranOutputStack()} returns the Fortran output stack")) (|clearFortranOutputStack| (((|Stack| (|String|))) "\\spad{clearFortranOutputStack()} clears the Fortran output stack"))) 
@@ -1528,7 +1528,7 @@ NIL
 ((|constructor| (NIL "provides an interface to the boot code for calling Fortran")) (|setLegalFortranSourceExtensions| (((|List| (|String|)) (|List| (|String|))) "\\spad{setLegalFortranSourceExtensions(l)} \\undocumented{}")) (|outputAsFortran| (((|Void|) (|FileName|)) "\\spad{outputAsFortran(fn)} \\undocumented{}")) (|linkToFortran| (((|SExpression|) (|Symbol|) (|List| (|Symbol|)) (|TheSymbolTable|) (|List| (|Symbol|))) "\\spad{linkToFortran(s,{}l,{}t,{}lv)} \\undocumented{}") (((|SExpression|) (|Symbol|) (|List| (|Union| (|:| |array| (|List| (|Symbol|))) (|:| |scalar| (|Symbol|)))) (|List| (|List| (|Union| (|:| |array| (|List| (|Symbol|))) (|:| |scalar| (|Symbol|))))) (|List| (|Symbol|)) (|Symbol|)) "\\spad{linkToFortran(s,{}l,{}ll,{}lv,{}t)} \\undocumented{}") (((|SExpression|) (|Symbol|) (|List| (|Union| (|:| |array| (|List| (|Symbol|))) (|:| |scalar| (|Symbol|)))) (|List| (|List| (|Union| (|:| |array| (|List| (|Symbol|))) (|:| |scalar| (|Symbol|))))) (|List| (|Symbol|))) "\\spad{linkToFortran(s,{}l,{}ll,{}lv)} \\undocumented{}"))) 
 NIL 
 NIL 
-(-400 -3391 |returnType| |arguments| |symbols|) 
+(-400 -3393 |returnType| |arguments| |symbols|) 
 ((|constructor| (NIL "\\axiomType{FortranProgram} allows the user to build and manipulate simple models of FORTRAN subprograms. These can then be transformed into actual FORTRAN notation.")) (|coerce| (($ (|Equation| (|Expression| (|Complex| (|Float|))))) "\\spad{coerce(eq)} is not documented") (($ (|Equation| (|Expression| (|Float|)))) "\\spad{coerce(eq)} is not documented") (($ (|Equation| (|Expression| (|Integer|)))) "\\spad{coerce(eq)} is not documented") (($ (|Expression| (|Complex| (|Float|)))) "\\spad{coerce(e)} is not documented") (($ (|Expression| (|Float|))) "\\spad{coerce(e)} is not documented") (($ (|Expression| (|Integer|))) "\\spad{coerce(e)} is not documented") (($ (|Equation| (|Expression| (|MachineComplex|)))) "\\spad{coerce(eq)} is not documented") (($ (|Equation| (|Expression| (|MachineFloat|)))) "\\spad{coerce(eq)} is not documented") (($ (|Equation| (|Expression| (|MachineInteger|)))) "\\spad{coerce(eq)} is not documented") (($ (|Expression| (|MachineComplex|))) "\\spad{coerce(e)} is not documented") (($ (|Expression| (|MachineFloat|))) "\\spad{coerce(e)} is not documented") (($ (|Expression| (|MachineInteger|))) "\\spad{coerce(e)} is not documented") (($ (|Record| (|:| |localSymbols| (|SymbolTable|)) (|:| |code| (|List| (|FortranCode|))))) "\\spad{coerce(r)} is not documented") (($ (|List| (|FortranCode|))) "\\spad{coerce(lfc)} is not documented") (($ (|FortranCode|)) "\\spad{coerce(fc)} is not documented"))) 
 NIL 
 NIL 
@@ -1546,15 +1546,15 @@ NIL
 NIL 
 (-404) 
 ((|constructor| (NIL "FieldOfPrimeCharacteristic is the category of fields of prime characteristic,{} \\spadignore{e.g.} finite fields,{} algebraic closures of fields of prime characteristic,{} transcendental extensions of of fields of prime characteristic.")) (|primeFrobenius| (($ $ (|NonNegativeInteger|)) "\\spad{primeFrobenius(a,{}s)} returns \\spad{a**(p**s)} where \\spad{p} is the characteristic.") (($ $) "\\spad{primeFrobenius(a)} returns \\spad{a**p} where \\spad{p} is the characteristic.")) (|discreteLog| (((|Union| (|NonNegativeInteger|) "failed") $ $) "\\spad{discreteLog(b,{}a)} computes \\spad{s} with \\spad{b**s = a} if such an \\spad{s} exists.")) (|order| (((|OnePointCompletion| (|PositiveInteger|)) $) "\\spad{order(a)} computes the order of an element in the multiplicative group of the field. Error: if \\spad{a} is 0."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-405 S) 
 ((|constructor| (NIL "This category is intended as a model for floating point systems. A floating point system is a model for the real numbers. In fact,{} it is an approximation in the sense that not all real numbers are exactly representable by floating point numbers. A floating point system is characterized by the following: \\blankline 1: base of the exponent where the actual implemenations are usually binary or decimal)\\spad{\\br} 2: precision of the mantissa (arbitrary or fixed)\\spad{\\br} 3: rounding error for operations \\blankline Because a Float is an approximation to the real numbers,{} even though it is defined to be a join of a Field and OrderedRing,{} some of the attributes do not hold. In particular associative(\\spad{\"+\"}) does not hold. Algorithms defined over a field need special considerations when the field is a floating point system.")) (|max| (($) "\\spad{max()} returns the maximum floating point number.")) (|min| (($) "\\spad{min()} returns the minimum floating point number.")) (|decreasePrecision| (((|PositiveInteger|) (|Integer|)) "\\spad{decreasePrecision(n)} decreases the current \\spadfunFrom{precision}{FloatingPointSystem} precision by \\spad{n} decimal digits.")) (|increasePrecision| (((|PositiveInteger|) (|Integer|)) "\\spad{increasePrecision(n)} increases the current \\spadfunFrom{precision}{FloatingPointSystem} by \\spad{n} decimal digits.")) (|precision| (((|PositiveInteger|) (|PositiveInteger|)) "\\spad{precision(n)} set the precision in the base to \\spad{n} decimal digits.") (((|PositiveInteger|)) "\\spad{precision()} returns the precision in digits base.")) (|digits| (((|PositiveInteger|) (|PositiveInteger|)) "\\spad{digits(d)} set the \\spadfunFrom{precision}{FloatingPointSystem} to \\spad{d} digits.") (((|PositiveInteger|)) "\\spad{digits()} returns ceiling\\spad{'s} precision in decimal digits.")) (|bits| (((|PositiveInteger|) (|PositiveInteger|)) "\\spad{bits(n)} set the \\spadfunFrom{precision}{FloatingPointSystem} to \\spad{n} bits.") (((|PositiveInteger|)) "\\spad{bits()} returns ceiling\\spad{'s} precision in bits.")) (|mantissa| (((|Integer|) $) "\\spad{mantissa(x)} returns the mantissa part of \\spad{x}.")) (|exponent| (((|Integer|) $) "\\spad{exponent(x)} returns the \\spadfunFrom{exponent}{FloatingPointSystem} part of \\spad{x}.")) (|base| (((|PositiveInteger|)) "\\indented{1}{base() returns the base of the} \\spadfunFrom{exponent}{FloatingPointSystem}.")) (|order| (((|Integer|) $) "\\spad{order x} is the order of magnitude of \\spad{x}. Note that \\spad{base ** order x <= |x| < base ** (1 + order x)}.")) (|float| (($ (|Integer|) (|Integer|) (|PositiveInteger|)) "\\spad{float(a,{}e,{}b)} returns \\spad{a * b ** e}.") (($ (|Integer|) (|Integer|)) "\\spad{float(a,{}e)} returns \\spad{a * base() ** e}.")) (|approximate| ((|attribute|) "\\spad{approximate} means \"is an approximation to the real numbers\"."))) 
 NIL 
-((|HasAttribute| |#1| (QUOTE -4502)) (|HasAttribute| |#1| (QUOTE -4510))) 
+((|HasAttribute| |#1| (QUOTE -4504)) (|HasAttribute| |#1| (QUOTE -4512))) 
 (-406) 
 ((|constructor| (NIL "This category is intended as a model for floating point systems. A floating point system is a model for the real numbers. In fact,{} it is an approximation in the sense that not all real numbers are exactly representable by floating point numbers. A floating point system is characterized by the following: \\blankline 1: base of the exponent where the actual implemenations are usually binary or decimal)\\spad{\\br} 2: precision of the mantissa (arbitrary or fixed)\\spad{\\br} 3: rounding error for operations \\blankline Because a Float is an approximation to the real numbers,{} even though it is defined to be a join of a Field and OrderedRing,{} some of the attributes do not hold. In particular associative(\\spad{\"+\"}) does not hold. Algorithms defined over a field need special considerations when the field is a floating point system.")) (|max| (($) "\\spad{max()} returns the maximum floating point number.")) (|min| (($) "\\spad{min()} returns the minimum floating point number.")) (|decreasePrecision| (((|PositiveInteger|) (|Integer|)) "\\spad{decreasePrecision(n)} decreases the current \\spadfunFrom{precision}{FloatingPointSystem} precision by \\spad{n} decimal digits.")) (|increasePrecision| (((|PositiveInteger|) (|Integer|)) "\\spad{increasePrecision(n)} increases the current \\spadfunFrom{precision}{FloatingPointSystem} by \\spad{n} decimal digits.")) (|precision| (((|PositiveInteger|) (|PositiveInteger|)) "\\spad{precision(n)} set the precision in the base to \\spad{n} decimal digits.") (((|PositiveInteger|)) "\\spad{precision()} returns the precision in digits base.")) (|digits| (((|PositiveInteger|) (|PositiveInteger|)) "\\spad{digits(d)} set the \\spadfunFrom{precision}{FloatingPointSystem} to \\spad{d} digits.") (((|PositiveInteger|)) "\\spad{digits()} returns ceiling\\spad{'s} precision in decimal digits.")) (|bits| (((|PositiveInteger|) (|PositiveInteger|)) "\\spad{bits(n)} set the \\spadfunFrom{precision}{FloatingPointSystem} to \\spad{n} bits.") (((|PositiveInteger|)) "\\spad{bits()} returns ceiling\\spad{'s} precision in bits.")) (|mantissa| (((|Integer|) $) "\\spad{mantissa(x)} returns the mantissa part of \\spad{x}.")) (|exponent| (((|Integer|) $) "\\spad{exponent(x)} returns the \\spadfunFrom{exponent}{FloatingPointSystem} part of \\spad{x}.")) (|base| (((|PositiveInteger|)) "\\indented{1}{base() returns the base of the} \\spadfunFrom{exponent}{FloatingPointSystem}.")) (|order| (((|Integer|) $) "\\spad{order x} is the order of magnitude of \\spad{x}. Note that \\spad{base ** order x <= |x| < base ** (1 + order x)}.")) (|float| (($ (|Integer|) (|Integer|) (|PositiveInteger|)) "\\spad{float(a,{}e,{}b)} returns \\spad{a * b ** e}.") (($ (|Integer|) (|Integer|)) "\\spad{float(a,{}e)} returns \\spad{a * base() ** e}.")) (|approximate| ((|attribute|) "\\spad{approximate} means \"is an approximation to the real numbers\"."))) 
-((-3996 . T) (-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-3999 . T) (-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-407 R S) 
 ((|constructor| (NIL "\\spadtype{FactoredFunctions2} contains functions that involve factored objects whose underlying domains may not be the same. For example,{} \\spadfun{map} might be used to coerce an object of type \\spadtype{Factored(Integer)} to \\spadtype{Factored(Complex(Integer))}.")) (|map| (((|Factored| |#2|) (|Mapping| |#2| |#1|) (|Factored| |#1|)) "\\spad{map(fn,{}u)} is used to apply the function \\userfun{\\spad{fn}} to every factor of \\spadvar{\\spad{u}}. The new factored object will have all its information flags set to \"nil\". This function is used,{} for example,{} to coerce every factor base to another type."))) 
@@ -1566,15 +1566,15 @@ NIL
 NIL 
 (-409 S) 
 ((|constructor| (NIL "Fraction takes an IntegralDomain \\spad{S} and produces the domain of Fractions with numerators and denominators from \\spad{S}. If \\spad{S} is also a GcdDomain,{} then \\spad{gcd}\\spad{'s} between numerator and denominator will be cancelled during all operations.")) (|canonical| ((|attribute|) "\\spad{canonical} means that equal elements are in fact identical."))) 
-((-4506 -12 (|has| |#1| (-6 -4517)) (|has| |#1| (-453)) (|has| |#1| (-6 -4506))) (-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| |#1| (QUOTE (-904))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-1021))) (|HasCategory| |#1| (QUOTE (-815))) (|HasCategory| |#1| (QUOTE (-1136))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#1| (QUOTE (-225))) (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (LIST (QUOTE -523) (QUOTE (-1161)) (|devaluate| |#1|))) (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (LIST (QUOTE -281) (|devaluate| |#1|) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-550))) (-12 (|HasCategory| |#1| (QUOTE (-550))) (|HasCategory| |#1| (QUOTE (-823)))) (-12 (|HasAttribute| |#1| (QUOTE -4517)) (|HasAttribute| |#1| (QUOTE -4506)) (|HasCategory| |#1| (QUOTE (-453)))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (-12 (|HasCategory| |#1| (QUOTE (-550))) (|HasCategory| |#1| (QUOTE (-823))))) (|HasCategory| |#1| (QUOTE (-842))) (-2198 (|HasCategory| |#1| (QUOTE (-815))) (|HasCategory| |#1| (QUOTE (-842)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (-12 (|HasCategory| |#1| (QUOTE (-550))) (|HasCategory| |#1| (QUOTE (-823))))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568)))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568)))) (-12 (|HasCategory| |#1| (QUOTE (-550))) (|HasCategory| |#1| (QUOTE (-823))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (-12 (|HasCategory| |#1| (QUOTE (-550))) (|HasCategory| |#1| (QUOTE (-823))))) (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (-12 (|HasCategory| |#1| (QUOTE (-550))) (|HasCategory| |#1| (QUOTE (-823))))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-148))))) 
+((-4508 -12 (|has| |#1| (-6 -4519)) (|has| |#1| (-453)) (|has| |#1| (-6 -4508))) (-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| |#1| (QUOTE (-904))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-1021))) (|HasCategory| |#1| (QUOTE (-815))) (|HasCategory| |#1| (QUOTE (-1136))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#1| (QUOTE (-225))) (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (LIST (QUOTE -523) (QUOTE (-1161)) (|devaluate| |#1|))) (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (LIST (QUOTE -281) (|devaluate| |#1|) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-550))) (-12 (|HasCategory| |#1| (QUOTE (-550))) (|HasCategory| |#1| (QUOTE (-823)))) (-12 (|HasAttribute| |#1| (QUOTE -4519)) (|HasAttribute| |#1| (QUOTE -4508)) (|HasCategory| |#1| (QUOTE (-453)))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (-12 (|HasCategory| |#1| (QUOTE (-550))) (|HasCategory| |#1| (QUOTE (-823))))) (|HasCategory| |#1| (QUOTE (-842))) (-2199 (|HasCategory| |#1| (QUOTE (-815))) (|HasCategory| |#1| (QUOTE (-842)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (-12 (|HasCategory| |#1| (QUOTE (-550))) (|HasCategory| |#1| (QUOTE (-823))))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568)))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568)))) (-12 (|HasCategory| |#1| (QUOTE (-550))) (|HasCategory| |#1| (QUOTE (-823))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (-12 (|HasCategory| |#1| (QUOTE (-550))) (|HasCategory| |#1| (QUOTE (-823))))) (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (-12 (|HasCategory| |#1| (QUOTE (-550))) (|HasCategory| |#1| (QUOTE (-823))))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-148))))) 
 (-410 S R UP) 
 ((|constructor| (NIL "A \\spadtype{FramedAlgebra} is a \\spadtype{FiniteRankAlgebra} together with a fixed \\spad{R}-module basis.")) (|regularRepresentation| (((|Matrix| |#2|) $) "\\spad{regularRepresentation(a)} returns the matrix of the linear map defined by left multiplication by \\spad{a} with respect to the fixed basis.")) (|discriminant| ((|#2|) "\\spad{discriminant()} = determinant(traceMatrix()).")) (|traceMatrix| (((|Matrix| |#2|)) "\\spad{traceMatrix()} is the \\spad{n}-by-\\spad{n} matrix ( \\spad{Tr(\\spad{vi} * vj)} ),{} where \\spad{v1},{} ...,{} \\spad{vn} are the elements of the fixed basis.")) (|convert| (($ (|Vector| |#2|)) "\\spad{convert([a1,{}..,{}an])} returns \\spad{a1*v1 + ... + an*vn},{} where \\spad{v1},{} ...,{} \\spad{vn} are the elements of the fixed basis.") (((|Vector| |#2|) $) "\\spad{convert(a)} returns the coordinates of \\spad{a} with respect to the fixed \\spad{R}-module basis.")) (|represents| (($ (|Vector| |#2|)) "\\spad{represents([a1,{}..,{}an])} returns \\spad{a1*v1 + ... + an*vn},{} where \\spad{v1},{} ...,{} \\spad{vn} are the elements of the fixed basis.")) (|coordinates| (((|Matrix| |#2|) (|Vector| $)) "\\spad{coordinates([v1,{}...,{}vm])} returns the coordinates of the \\spad{vi}\\spad{'s} with to the fixed basis. The coordinates of \\spad{vi} are contained in the \\spad{i}th row of the matrix returned by this function.") (((|Vector| |#2|) $) "\\spad{coordinates(a)} returns the coordinates of \\spad{a} with respect to the fixed \\spad{R}-module basis.")) (|basis| (((|Vector| $)) "\\spad{basis()} returns the fixed \\spad{R}-module basis."))) 
 NIL 
 NIL 
 (-411 R UP) 
 ((|constructor| (NIL "A \\spadtype{FramedAlgebra} is a \\spadtype{FiniteRankAlgebra} together with a fixed \\spad{R}-module basis.")) (|regularRepresentation| (((|Matrix| |#1|) $) "\\spad{regularRepresentation(a)} returns the matrix of the linear map defined by left multiplication by \\spad{a} with respect to the fixed basis.")) (|discriminant| ((|#1|) "\\spad{discriminant()} = determinant(traceMatrix()).")) (|traceMatrix| (((|Matrix| |#1|)) "\\spad{traceMatrix()} is the \\spad{n}-by-\\spad{n} matrix ( \\spad{Tr(\\spad{vi} * vj)} ),{} where \\spad{v1},{} ...,{} \\spad{vn} are the elements of the fixed basis.")) (|convert| (($ (|Vector| |#1|)) "\\spad{convert([a1,{}..,{}an])} returns \\spad{a1*v1 + ... + an*vn},{} where \\spad{v1},{} ...,{} \\spad{vn} are the elements of the fixed basis.") (((|Vector| |#1|) $) "\\spad{convert(a)} returns the coordinates of \\spad{a} with respect to the fixed \\spad{R}-module basis.")) (|represents| (($ (|Vector| |#1|)) "\\spad{represents([a1,{}..,{}an])} returns \\spad{a1*v1 + ... + an*vn},{} where \\spad{v1},{} ...,{} \\spad{vn} are the elements of the fixed basis.")) (|coordinates| (((|Matrix| |#1|) (|Vector| $)) "\\spad{coordinates([v1,{}...,{}vm])} returns the coordinates of the \\spad{vi}\\spad{'s} with to the fixed basis. The coordinates of \\spad{vi} are contained in the \\spad{i}th row of the matrix returned by this function.") (((|Vector| |#1|) $) "\\spad{coordinates(a)} returns the coordinates of \\spad{a} with respect to the fixed \\spad{R}-module basis.")) (|basis| (((|Vector| $)) "\\spad{basis()} returns the fixed \\spad{R}-module basis."))) 
-((-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-412 A S) 
 ((|constructor| (NIL "A is fully retractable to \\spad{B} means that A is retractable to \\spad{B} and if \\spad{B} is retractable to the integers or rational numbers then so is A. In particular,{} what we are asserting is that there are no integers (rationals) in A which don\\spad{'t} retract into \\spad{B}."))) 
@@ -1590,7 +1590,7 @@ NIL
 NIL 
 (-415 R -1478 UP A) 
 ((|constructor| (NIL "Fractional ideals in a framed algebra.")) (|randomLC| ((|#4| (|NonNegativeInteger|) (|Vector| |#4|)) "\\spad{randomLC(n,{}x)} should be local but conditional.")) (|minimize| (($ $) "\\spad{minimize(I)} returns a reduced set of generators for \\spad{I}.")) (|denom| ((|#1| $) "\\spad{denom(1/d * (f1,{}...,{}fn))} returns \\spad{d}.")) (|numer| (((|Vector| |#4|) $) "\\spad{numer(1/d * (f1,{}...,{}fn))} = the vector \\spad{[f1,{}...,{}fn]}.")) (|norm| ((|#2| $) "\\spad{norm(I)} returns the norm of the ideal \\spad{I}.")) (|basis| (((|Vector| |#4|) $) "\\spad{basis((f1,{}...,{}fn))} returns the vector \\spad{[f1,{}...,{}fn]}.")) (|ideal| (($ (|Vector| |#4|)) "\\spad{ideal([f1,{}...,{}fn])} returns the ideal \\spad{(f1,{}...,{}fn)}."))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-416 R -1478 UP A |ibasis|) 
 ((|constructor| (NIL "Module representation of fractional ideals.")) (|module| (($ (|FractionalIdeal| |#1| |#2| |#3| |#4|)) "\\spad{module(I)} returns \\spad{I} viewed has a module over \\spad{R}.") (($ (|Vector| |#4|)) "\\spad{module([f1,{}...,{}fn])} = the module generated by \\spad{(f1,{}...,{}fn)} over \\spad{R}.")) (|norm| ((|#2| $) "\\spad{norm(f)} returns the norm of the module \\spad{f}.")) (|basis| (((|Vector| |#4|) $) "\\spad{basis((f1,{}...,{}fn))} = the vector \\spad{[f1,{}...,{}fn]}."))) 
@@ -1606,12 +1606,12 @@ NIL
 ((|HasCategory| |#2| (QUOTE (-365)))) 
 (-419 R) 
 ((|constructor| (NIL "FramedNonAssociativeAlgebra(\\spad{R}) is a \\spadtype{FiniteRankNonAssociativeAlgebra} (\\spadignore{i.e.} a non associative algebra over \\spad{R} which is a free \\spad{R}-module of finite rank) over a commutative ring \\spad{R} together with a fixed \\spad{R}-module basis.")) (|apply| (($ (|Matrix| |#1|) $) "\\spad{apply(m,{}a)} defines a left operation of \\spad{n} by \\spad{n} matrices where \\spad{n} is the rank of the algebra in terms of matrix-vector multiplication,{} this is a substitute for a left module structure. Error: if shape of matrix doesn\\spad{'t} fit.")) (|rightRankPolynomial| (((|SparseUnivariatePolynomial| (|Polynomial| |#1|))) "\\spad{rightRankPolynomial()} calculates the right minimal polynomial of the generic element in the algebra,{} defined by the same structural constants over the polynomial ring in symbolic coefficients with respect to the fixed basis.")) (|leftRankPolynomial| (((|SparseUnivariatePolynomial| (|Polynomial| |#1|))) "\\spad{leftRankPolynomial()} calculates the left minimal polynomial of the generic element in the algebra,{} defined by the same structural constants over the polynomial ring in symbolic coefficients with respect to the fixed basis.")) (|rightRegularRepresentation| (((|Matrix| |#1|) $) "\\spad{rightRegularRepresentation(a)} returns the matrix of the linear map defined by right multiplication by \\spad{a} with respect to the fixed \\spad{R}-module basis.")) (|leftRegularRepresentation| (((|Matrix| |#1|) $) "\\spad{leftRegularRepresentation(a)} returns the matrix of the linear map defined by left multiplication by \\spad{a} with respect to the fixed \\spad{R}-module basis.")) (|rightTraceMatrix| (((|Matrix| |#1|)) "\\spad{rightTraceMatrix()} is the \\spad{n}-by-\\spad{n} matrix whose element at the \\spad{i}\\spad{-}th row and \\spad{j}\\spad{-}th column is given by the right trace of the product \\spad{vi*vj},{} where \\spad{v1},{}...,{}\\spad{vn} are the elements of the fixed \\spad{R}-module basis.")) (|leftTraceMatrix| (((|Matrix| |#1|)) "\\spad{leftTraceMatrix()} is the \\spad{n}-by-\\spad{n} matrix whose element at the \\spad{i}\\spad{-}th row and \\spad{j}\\spad{-}th column is given by left trace of the product \\spad{vi*vj},{} where \\spad{v1},{}...,{}\\spad{vn} are the elements of the fixed \\spad{R}-module basis.")) (|rightDiscriminant| ((|#1|) "\\spad{rightDiscriminant()} returns the determinant of the \\spad{n}-by-\\spad{n} matrix whose element at the \\spad{i}\\spad{-}th row and \\spad{j}\\spad{-}th column is given by the right trace of the product \\spad{vi*vj},{} where \\spad{v1},{}...,{}\\spad{vn} are the elements of the fixed \\spad{R}-module basis. Note that the same as \\spad{determinant(rightTraceMatrix())}.")) (|leftDiscriminant| ((|#1|) "\\spad{leftDiscriminant()} returns the determinant of the \\spad{n}-by-\\spad{n} matrix whose element at the \\spad{i}\\spad{-}th row and \\spad{j}\\spad{-}th column is given by the left trace of the product \\spad{vi*vj},{} where \\spad{v1},{}...,{}\\spad{vn} are the elements of the fixed \\spad{R}-module basis. Note that the same as \\spad{determinant(leftTraceMatrix())}.")) (|convert| (($ (|Vector| |#1|)) "\\spad{convert([a1,{}...,{}an])} returns \\spad{a1*v1 + ... + an*vn},{} where \\spad{v1},{} ...,{} \\spad{vn} are the elements of the fixed \\spad{R}-module basis.") (((|Vector| |#1|) $) "\\spad{convert(a)} returns the coordinates of \\spad{a} with respect to the fixed \\spad{R}-module basis.")) (|represents| (($ (|Vector| |#1|)) "\\spad{represents([a1,{}...,{}an])} returns \\spad{a1*v1 + ... + an*vn},{} where \\spad{v1},{} ...,{} \\spad{vn} are the elements of the fixed \\spad{R}-module basis.")) (|conditionsForIdempotents| (((|List| (|Polynomial| |#1|))) "\\spad{conditionsForIdempotents()} determines a complete list of polynomial equations for the coefficients of idempotents with respect to the fixed \\spad{R}-module basis.")) (|structuralConstants| (((|Vector| (|Matrix| |#1|))) "\\spad{structuralConstants()} calculates the structural constants \\spad{[(gammaijk) for k in 1..rank()]} defined by \\spad{\\spad{vi} * vj = gammaij1 * v1 + ... + gammaijn * vn},{} where \\spad{v1},{}...,{}\\spad{vn} is the fixed \\spad{R}-module basis.")) (|elt| ((|#1| $ (|Integer|)) "\\spad{elt(a,{}i)} returns the \\spad{i}-th coefficient of \\spad{a} with respect to the fixed \\spad{R}-module basis.")) (|coordinates| (((|Matrix| |#1|) (|Vector| $)) "\\spad{coordinates([a1,{}...,{}am])} returns a matrix whose \\spad{i}-th row is formed by the coordinates of \\spad{\\spad{ai}} with respect to the fixed \\spad{R}-module basis.") (((|Vector| |#1|) $) "\\spad{coordinates(a)} returns the coordinates of \\spad{a} with respect to the fixed \\spad{R}-module basis.")) (|basis| (((|Vector| $)) "\\spad{basis()} returns the fixed \\spad{R}-module basis."))) 
-((-4516 |has| |#1| (-558)) (-4514 . T) (-4513 . T)) 
+((-4518 |has| |#1| (-558)) (-4516 . T) (-4515 . T)) 
 NIL 
 (-420 R) 
 ((|constructor| (NIL "\\spadtype{Factored} creates a domain whose objects are kept in factored form as long as possible. Thus certain operations like multiplication and \\spad{gcd} are relatively easy to do. Others,{} like addition require somewhat more work,{} and unless the argument domain provides a factor function,{} the result may not be completely factored. Each object consists of a unit and a list of factors,{} where a factor has a member of \\spad{R} (the \"base\"),{} and exponent and a flag indicating what is known about the base. A flag may be one of \"nil\",{} \"sqfr\",{} \"irred\" or \"prime\",{} which respectively mean that nothing is known about the base,{} it is square-free,{} it is irreducible,{} or it is prime. The current restriction to integral domains allows simplification to be performed without worrying about multiplication order.")) (|rationalIfCan| (((|Union| (|Fraction| (|Integer|)) "failed") $) "\\spad{rationalIfCan(u)} returns a rational number if \\spad{u} really is one,{} and \"failed\" otherwise.")) (|rational| (((|Fraction| (|Integer|)) $) "\\spad{rational(u)} assumes spadvar{\\spad{u}} is actually a rational number and does the conversion to rational number (see \\spadtype{Fraction Integer}).")) (|rational?| (((|Boolean|) $) "\\spad{rational?(u)} tests if \\spadvar{\\spad{u}} is actually a rational number (see \\spadtype{Fraction Integer}).")) (|map| (($ (|Mapping| |#1| |#1|) $) "\\indented{1}{map(\\spad{fn},{}\\spad{u}) maps the function \\userfun{\\spad{fn}} across the factors of} \\indented{1}{\\spadvar{\\spad{u}} and creates a new factored object. Note: this clears} \\indented{1}{the information flags (sets them to \"nil\") because the effect of} \\indented{1}{\\userfun{\\spad{fn}} is clearly not known in general.} \\blankline \\spad{X} \\spad{m}(a:Factored Polynomial Integer):Factored Polynomial Integer \\spad{==} \\spad{a^2} \\spad{X} \\spad{f:=x*y^3}-3*x^2*y^2+3*x^3*y-\\spad{x^4} \\spad{X} map(\\spad{m},{}\\spad{f}) \\spad{X} g:=makeFR(\\spad{z},{}factorList \\spad{f}) \\spad{X} map(\\spad{m},{}\\spad{g})")) (|unitNormalize| (($ $) "\\spad{unitNormalize(u)} normalizes the unit part of the factorization. For example,{} when working with factored integers,{} this operation will ensure that the bases are all positive integers.")) (|unit| ((|#1| $) "\\indented{1}{unit(\\spad{u}) extracts the unit part of the factorization.} \\blankline \\spad{X} \\spad{f:=x*y^3}-3*x^2*y^2+3*x^3*y-\\spad{x^4} \\spad{X} unit \\spad{f} \\spad{X} g:=makeFR(\\spad{z},{}factorList \\spad{f}) \\spad{X} unit \\spad{g}")) (|flagFactor| (($ |#1| (|Integer|) (|Union| "nil" "sqfr" "irred" "prime")) "\\spad{flagFactor(base,{}exponent,{}flag)} creates a factored object with a single factor whose \\spad{base} is asserted to be properly described by the information \\spad{flag}.")) (|sqfrFactor| (($ |#1| (|Integer|)) "\\indented{1}{sqfrFactor(base,{}exponent) creates a factored object with} \\indented{1}{a single factor whose base is asserted to be square-free} \\indented{1}{(flag = \"sqfr\").} \\blankline \\spad{X} a:=sqfrFactor(3,{}5) \\spad{X} nthFlag(a,{}1)")) (|primeFactor| (($ |#1| (|Integer|)) "\\indented{1}{primeFactor(base,{}exponent) creates a factored object with} \\indented{1}{a single factor whose base is asserted to be prime} \\indented{1}{(flag = \"prime\").} \\blankline \\spad{X} a:=primeFactor(3,{}4) \\spad{X} nthFlag(a,{}1)")) (|numberOfFactors| (((|NonNegativeInteger|) $) "\\indented{1}{numberOfFactors(\\spad{u}) returns the number of factors in \\spadvar{\\spad{u}}.} \\blankline \\spad{X} a:=factor 9720000 \\spad{X} numberOfFactors a")) (|nthFlag| (((|Union| "nil" "sqfr" "irred" "prime") $ (|Integer|)) "\\indented{1}{nthFlag(\\spad{u},{}\\spad{n}) returns the information flag of the \\spad{n}th factor of} \\indented{1}{\\spadvar{\\spad{u}}.\\space{2}If \\spadvar{\\spad{n}} is not a valid index for a factor} \\indented{1}{(for example,{} less than 1 or too big),{} \"nil\" is returned.} \\blankline \\spad{X} a:=factor 9720000 \\spad{X} nthFlag(a,{}2)")) (|nthFactor| ((|#1| $ (|Integer|)) "\\indented{1}{nthFactor(\\spad{u},{}\\spad{n}) returns the base of the \\spad{n}th factor of} \\indented{1}{\\spadvar{\\spad{u}}.\\space{2}If \\spadvar{\\spad{n}} is not a valid index for a factor} \\indented{1}{(for example,{} less than 1 or too big),{} 1 is returned.\\space{2}If} \\indented{1}{\\spadvar{\\spad{u}} consists only of a unit,{} the unit is returned.} \\blankline \\spad{X} a:=factor 9720000 \\spad{X} nthFactor(a,{}2)")) (|nthExponent| (((|Integer|) $ (|Integer|)) "\\indented{1}{nthExponent(\\spad{u},{}\\spad{n}) returns the exponent of the \\spad{n}th factor of} \\indented{1}{\\spadvar{\\spad{u}}.\\space{2}If \\spadvar{\\spad{n}} is not a valid index for a factor} \\indented{1}{(for example,{} less than 1 or too big),{} 0 is returned.} \\blankline \\spad{X} a:=factor 9720000 \\spad{X} nthExponent(a,{}2)")) (|irreducibleFactor| (($ |#1| (|Integer|)) "\\indented{1}{irreducibleFactor(base,{}exponent) creates a factored object with} \\indented{1}{a single factor whose base is asserted to be irreducible} \\indented{1}{(flag = \"irred\").} \\blankline \\spad{X} a:=irreducibleFactor(3,{}1) \\spad{X} nthFlag(a,{}1)")) (|factors| (((|List| (|Record| (|:| |factor| |#1|) (|:| |exponent| (|Integer|)))) $) "\\indented{1}{factors(\\spad{u}) returns a list of the factors in a form suitable} \\indented{1}{for iteration. That is,{} it returns a list where each element} \\indented{1}{is a record containing a base and exponent.\\space{2}The original} \\indented{1}{object is the product of all the factors and the unit (which} \\indented{1}{can be extracted by \\axiom{unit(\\spad{u})}).} \\blankline \\spad{X} \\spad{f:=x*y^3}-3*x^2*y^2+3*x^3*y-\\spad{x^4} \\spad{X} factors \\spad{f} \\spad{X} g:=makeFR(\\spad{z},{}factorList \\spad{f}) \\spad{X} factors \\spad{g}")) (|nilFactor| (($ |#1| (|Integer|)) "\\indented{1}{nilFactor(base,{}exponent) creates a factored object with} \\indented{1}{a single factor with no information about the kind of} \\indented{1}{base (flag = \"nil\").} \\blankline \\spad{X} nilFactor(24,{}2) \\spad{X} nilFactor(\\spad{x}-\\spad{y},{}3)")) (|factorList| (((|List| (|Record| (|:| |flg| (|Union| "nil" "sqfr" "irred" "prime")) (|:| |fctr| |#1|) (|:| |xpnt| (|Integer|)))) $) "\\indented{1}{factorList(\\spad{u}) returns the list of factors with flags (for} \\indented{1}{use by factoring code).} \\blankline \\spad{X} f:=nilFactor(\\spad{x}-\\spad{y},{}3) \\spad{X} factorList \\spad{f}")) (|makeFR| (($ |#1| (|List| (|Record| (|:| |flg| (|Union| "nil" "sqfr" "irred" "prime")) (|:| |fctr| |#1|) (|:| |xpnt| (|Integer|))))) "\\indented{1}{makeFR(unit,{}listOfFactors) creates a factored object (for} \\indented{1}{use by factoring code).} \\blankline \\spad{X} f:=nilFactor(\\spad{x}-\\spad{y},{}3) \\spad{X} g:=factorList \\spad{f} \\spad{X} makeFR(\\spad{z},{}\\spad{g})")) (|exponent| (((|Integer|) $) "\\indented{1}{exponent(\\spad{u}) returns the exponent of the first factor of} \\indented{1}{\\spadvar{\\spad{u}},{} or 0 if the factored form consists solely of a unit.} \\blankline \\spad{X} f:=nilFactor(\\spad{y}-\\spad{x},{}3) \\spad{X} exponent(\\spad{f})")) (|expand| ((|#1| $) "\\indented{1}{expand(\\spad{f}) multiplies the unit and factors together,{} yielding an} \\indented{1}{\"unfactored\" object. Note: this is purposely not called} \\indented{1}{\\spadfun{coerce} which would cause the interpreter to do this} \\indented{1}{automatically.} \\blankline \\spad{X} f:=nilFactor(\\spad{y}-\\spad{x},{}3) \\spad{X} expand(\\spad{f})"))) 
-((-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| |#1| (LIST (QUOTE -523) (QUOTE (-1161)) (QUOTE $))) (|HasCategory| |#1| (LIST (QUOTE -303) (QUOTE $))) (|HasCategory| |#1| (LIST (QUOTE -281) (QUOTE $) (QUOTE $))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-1199))) (|HasCategory| |#1| (QUOTE (-1021))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -523) (QUOTE (-1161)) (|devaluate| |#1|))) (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (LIST (QUOTE -281) (|devaluate| |#1|) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-225))) (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-550))) (|HasCategory| |#1| (QUOTE (-453))) (-2198 (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-1199))))) 
+((-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| |#1| (LIST (QUOTE -523) (QUOTE (-1161)) (QUOTE $))) (|HasCategory| |#1| (LIST (QUOTE -303) (QUOTE $))) (|HasCategory| |#1| (LIST (QUOTE -281) (QUOTE $) (QUOTE $))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-1199))) (|HasCategory| |#1| (QUOTE (-1021))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -523) (QUOTE (-1161)) (|devaluate| |#1|))) (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (LIST (QUOTE -281) (|devaluate| |#1|) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-225))) (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-550))) (|HasCategory| |#1| (QUOTE (-453))) (-2199 (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-1199))))) 
 (-421 R) 
 ((|constructor| (NIL "\\spadtype{FactoredFunctionUtilities} implements some utility functions for manipulating factored objects.")) (|mergeFactors| (((|Factored| |#1|) (|Factored| |#1|) (|Factored| |#1|)) "\\spad{mergeFactors(u,{}v)} is used when the factorizations of \\spadvar{\\spad{u}} and \\spadvar{\\spad{v}} are known to be disjoint,{} \\spadignore{e.g.} resulting from a content/primitive part split. Essentially,{} it creates a new factored object by multiplying the units together and appending the lists of factors.")) (|refine| (((|Factored| |#1|) (|Factored| |#1|) (|Mapping| (|Factored| |#1|) |#1|)) "\\spad{refine(u,{}fn)} is used to apply the function \\userfun{\\spad{fn}} to each factor of \\spadvar{\\spad{u}} and then build a new factored object from the results. For example,{} if \\spadvar{\\spad{u}} were created by calling \\spad{nilFactor(10,{}2)} then \\spad{refine(u,{}factor)} would create a factored object equal to that created by \\spad{factor(100)} or \\spad{primeFactor(2,{}2) * primeFactor(5,{}2)}."))) 
 NIL 
@@ -1638,7 +1638,7 @@ NIL
 ((|HasCategory| |#2| (QUOTE (-842))) (|HasCategory| |#2| (QUOTE (-370)))) 
 (-427 S) 
 ((|constructor| (NIL "A finite-set aggregate models the notion of a finite set,{} that is,{} a collection of elements characterized by membership,{} but not by order or multiplicity. See \\spadtype{Set} for an example.")) (|min| ((|#1| $) "\\spad{min(u)} returns the smallest element of aggregate \\spad{u}.")) (|max| ((|#1| $) "\\spad{max(u)} returns the largest element of aggregate \\spad{u}.")) (|universe| (($) "\\spad{universe()}\\$\\spad{D} returns the universal set for finite set aggregate \\spad{D}.")) (|complement| (($ $) "\\spad{complement(u)} returns the complement of the set \\spad{u},{} \\spadignore{i.e.} the set of all values not in \\spad{u}.")) (|cardinality| (((|NonNegativeInteger|) $) "\\spad{cardinality(u)} returns the number of elements of \\spad{u}. Note that \\axiom{cardinality(\\spad{u}) = \\#u}."))) 
-((-4519 . T) (-4509 . T) (-4520 . T) (-3973 . T)) 
+((-4521 . T) (-4511 . T) (-4522 . T) (-3973 . T)) 
 NIL 
 (-428 R -1478) 
 ((|constructor| (NIL "Top-level complex function integration \\spadtype{FunctionSpaceComplexIntegration} provides functions for the indefinite integration of complex-valued functions.")) (|complexIntegrate| ((|#2| |#2| (|Symbol|)) "\\spad{complexIntegrate(f,{} x)} returns the integral of \\spad{f(x)dx} where \\spad{x} is viewed as a complex variable.")) (|internalIntegrate0| (((|IntegrationResult| |#2|) |#2| (|Symbol|)) "\\spad{internalIntegrate0 should} be a local function,{} but is conditional.")) (|internalIntegrate| (((|IntegrationResult| |#2|) |#2| (|Symbol|)) "\\spad{internalIntegrate(f,{} x)} returns the integral of \\spad{f(x)dx} where \\spad{x} is viewed as a complex variable."))) 
@@ -1646,8 +1646,8 @@ NIL
 NIL 
 (-429 R E) 
 ((|constructor| (NIL "This domain converts terms into Fourier series")) (|makeCos| (($ |#2| |#1|) "\\indented{1}{makeCos(\\spad{e},{}\\spad{r}) makes a sin expression with given} argument and coefficient")) (|makeSin| (($ |#2| |#1|) "\\spad{makeSin(e,{}r)} makes a sin expression with given argument and coefficient")) (|coerce| (($ (|FourierComponent| |#2|)) "\\spad{coerce(c)} converts sin/cos terms into Fourier Series") (($ |#1|) "\\spad{coerce(r)} converts coefficients into Fourier Series"))) 
-((-4506 -12 (|has| |#1| (-6 -4506)) (|has| |#2| (-6 -4506))) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((-12 (|HasAttribute| |#1| (QUOTE -4506)) (|HasAttribute| |#2| (QUOTE -4506)))) 
+((-4508 -12 (|has| |#1| (-6 -4508)) (|has| |#2| (-6 -4508))) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((-12 (|HasAttribute| |#1| (QUOTE -4508)) (|HasAttribute| |#2| (QUOTE -4508)))) 
 (-430 R -1478) 
 ((|constructor| (NIL "Top-level real function integration \\spadtype{FunctionSpaceIntegration} provides functions for the indefinite integration of real-valued functions.")) (|integrate| (((|Union| |#2| (|List| |#2|)) |#2| (|Symbol|)) "\\spad{integrate(f,{} x)} returns the integral of \\spad{f(x)dx} where \\spad{x} is viewed as a real variable."))) 
 NIL 
@@ -1658,7 +1658,7 @@ NIL
 ((|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (QUOTE (-1047))) (|HasCategory| |#2| (QUOTE (-21))) (|HasCategory| |#2| (QUOTE (-25))) (|HasCategory| |#2| (QUOTE (-478))) (|HasCategory| |#2| (QUOTE (-1102))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541))))) 
 (-432 R) 
 ((|constructor| (NIL "A space of formal functions with arguments in an arbitrary ordered set.")) (|univariate| (((|Fraction| (|SparseUnivariatePolynomial| $)) $ (|Kernel| $)) "\\spad{univariate(f,{} k)} returns \\spad{f} viewed as a univariate fraction in \\spad{k}.")) (/ (($ (|SparseMultivariatePolynomial| |#1| (|Kernel| $)) (|SparseMultivariatePolynomial| |#1| (|Kernel| $))) "\\spad{p1/p2} returns the quotient of \\spad{p1} and \\spad{p2} as an element of \\%.")) (|denominator| (($ $) "\\spad{denominator(f)} returns the denominator of \\spad{f} converted to \\%.")) (|denom| (((|SparseMultivariatePolynomial| |#1| (|Kernel| $)) $) "\\spad{denom(f)} returns the denominator of \\spad{f} viewed as a polynomial in the kernels over \\spad{R}.")) (|convert| (($ (|Factored| $)) "\\spad{convert(f1\\^e1 ... fm\\^em)} returns \\spad{(f1)\\^e1 ... (fm)\\^em} as an element of \\%,{} using formal kernels created using a \\spadfunFrom{paren}{ExpressionSpace}.")) (|isPower| (((|Union| (|Record| (|:| |val| $) (|:| |exponent| (|Integer|))) "failed") $) "\\spad{isPower(p)} returns \\spad{[x,{} n]} if \\spad{p = x**n} and \\spad{n <> 0}.")) (|numerator| (($ $) "\\spad{numerator(f)} returns the numerator of \\spad{f} converted to \\%.")) (|numer| (((|SparseMultivariatePolynomial| |#1| (|Kernel| $)) $) "\\spad{numer(f)} returns the numerator of \\spad{f} viewed as a polynomial in the kernels over \\spad{R} if \\spad{R} is an integral domain. If not,{} then numer(\\spad{f}) = \\spad{f} viewed as a polynomial in the kernels over \\spad{R}.")) (|coerce| (($ (|Fraction| (|Polynomial| (|Fraction| |#1|)))) "\\spad{coerce(f)} returns \\spad{f} as an element of \\%.") (($ (|Polynomial| (|Fraction| |#1|))) "\\spad{coerce(p)} returns \\spad{p} as an element of \\%.") (($ (|Fraction| |#1|)) "\\spad{coerce(q)} returns \\spad{q} as an element of \\%.") (($ (|SparseMultivariatePolynomial| |#1| (|Kernel| $))) "\\spad{coerce(p)} returns \\spad{p} as an element of \\%.")) (|isMult| (((|Union| (|Record| (|:| |coef| (|Integer|)) (|:| |var| (|Kernel| $))) "failed") $) "\\spad{isMult(p)} returns \\spad{[n,{} x]} if \\spad{p = n * x} and \\spad{n <> 0}.")) (|isPlus| (((|Union| (|List| $) "failed") $) "\\spad{isPlus(p)} returns \\spad{[m1,{}...,{}mn]} if \\spad{p = m1 +...+ mn} and \\spad{n > 1}.")) (|isExpt| (((|Union| (|Record| (|:| |var| (|Kernel| $)) (|:| |exponent| (|Integer|))) "failed") $ (|Symbol|)) "\\spad{isExpt(p,{}f)} returns \\spad{[x,{} n]} if \\spad{p = x**n} and \\spad{n <> 0} and \\spad{x = f(a)}.") (((|Union| (|Record| (|:| |var| (|Kernel| $)) (|:| |exponent| (|Integer|))) "failed") $ (|BasicOperator|)) "\\spad{isExpt(p,{}op)} returns \\spad{[x,{} n]} if \\spad{p = x**n} and \\spad{n <> 0} and \\spad{x = op(a)}.") (((|Union| (|Record| (|:| |var| (|Kernel| $)) (|:| |exponent| (|Integer|))) "failed") $) "\\spad{isExpt(p)} returns \\spad{[x,{} n]} if \\spad{p = x**n} and \\spad{n <> 0}.")) (|isTimes| (((|Union| (|List| $) "failed") $) "\\spad{isTimes(p)} returns \\spad{[a1,{}...,{}an]} if \\spad{p = a1*...*an} and \\spad{n > 1}.")) (** (($ $ (|NonNegativeInteger|)) "\\spad{x**n} returns \\spad{x} * \\spad{x} * \\spad{x} * ... * \\spad{x} (\\spad{n} times).")) (|eval| (($ $ (|Symbol|) (|NonNegativeInteger|) (|Mapping| $ $)) "\\spad{eval(x,{} s,{} n,{} f)} replaces every \\spad{s(a)**n} in \\spad{x} by \\spad{f(a)} for any \\spad{a}.") (($ $ (|Symbol|) (|NonNegativeInteger|) (|Mapping| $ (|List| $))) "\\spad{eval(x,{} s,{} n,{} f)} replaces every \\spad{s(a1,{}...,{}am)**n} in \\spad{x} by \\spad{f(a1,{}...,{}am)} for any \\spad{a1},{}...,{}am.") (($ $ (|List| (|Symbol|)) (|List| (|NonNegativeInteger|)) (|List| (|Mapping| $ (|List| $)))) "\\spad{eval(x,{} [s1,{}...,{}sm],{} [n1,{}...,{}nm],{} [f1,{}...,{}fm])} replaces every \\spad{\\spad{si}(a1,{}...,{}an)**ni} in \\spad{x} by \\spad{\\spad{fi}(a1,{}...,{}an)} for any \\spad{a1},{}...,{}am.") (($ $ (|List| (|Symbol|)) (|List| (|NonNegativeInteger|)) (|List| (|Mapping| $ $))) "\\spad{eval(x,{} [s1,{}...,{}sm],{} [n1,{}...,{}nm],{} [f1,{}...,{}fm])} replaces every \\spad{\\spad{si}(a)**ni} in \\spad{x} by \\spad{\\spad{fi}(a)} for any \\spad{a}.") (($ $ (|List| (|BasicOperator|)) (|List| $) (|Symbol|)) "\\spad{eval(x,{} [s1,{}...,{}sm],{} [f1,{}...,{}fm],{} y)} replaces every \\spad{\\spad{si}(a)} in \\spad{x} by \\spad{\\spad{fi}(y)} with \\spad{y} replaced by \\spad{a} for any \\spad{a}.") (($ $ (|BasicOperator|) $ (|Symbol|)) "\\spad{eval(x,{} s,{} f,{} y)} replaces every \\spad{s(a)} in \\spad{x} by \\spad{f(y)} with \\spad{y} replaced by \\spad{a} for any \\spad{a}.") (($ $) "\\spad{eval(f)} unquotes all the quoted operators in \\spad{f}.") (($ $ (|List| (|Symbol|))) "\\spad{eval(f,{} [foo1,{}...,{}foon])} unquotes all the \\spad{fooi}\\spad{'s} in \\spad{f}.") (($ $ (|Symbol|)) "\\spad{eval(f,{} foo)} unquotes all the foo\\spad{'s} in \\spad{f}.")) (|applyQuote| (($ (|Symbol|) (|List| $)) "\\spad{applyQuote(foo,{} [x1,{}...,{}xn])} returns \\spad{'foo(x1,{}...,{}xn)}.") (($ (|Symbol|) $ $ $ $) "\\spad{applyQuote(foo,{} x,{} y,{} z,{} t)} returns \\spad{'foo(x,{}y,{}z,{}t)}.") (($ (|Symbol|) $ $ $) "\\spad{applyQuote(foo,{} x,{} y,{} z)} returns \\spad{'foo(x,{}y,{}z)}.") (($ (|Symbol|) $ $) "\\spad{applyQuote(foo,{} x,{} y)} returns \\spad{'foo(x,{}y)}.") (($ (|Symbol|) $) "\\spad{applyQuote(foo,{} x)} returns \\spad{'foo(x)}.")) (|variables| (((|List| (|Symbol|)) $) "\\spad{variables(f)} returns the list of all the variables of \\spad{f}.")) (|ground| ((|#1| $) "\\spad{ground(f)} returns \\spad{f} as an element of \\spad{R}. An error occurs if \\spad{f} is not an element of \\spad{R}.")) (|ground?| (((|Boolean|) $) "\\spad{ground?(f)} tests if \\spad{f} is an element of \\spad{R}."))) 
-((-4516 -2198 (|has| |#1| (-1047)) (|has| |#1| (-478))) (-4514 |has| |#1| (-172)) (-4513 |has| |#1| (-172)) ((-4521 "*") |has| |#1| (-558)) (-4512 |has| |#1| (-558)) (-4517 |has| |#1| (-558)) (-4511 |has| |#1| (-558)) (-3973 . T)) 
+((-4518 -2199 (|has| |#1| (-1047)) (|has| |#1| (-478))) (-4516 |has| |#1| (-172)) (-4515 |has| |#1| (-172)) ((-4523 "*") |has| |#1| (-558)) (-4514 |has| |#1| (-558)) (-4519 |has| |#1| (-558)) (-4513 |has| |#1| (-558)) (-3973 . T)) 
 NIL 
 (-433 R -1478) 
 ((|constructor| (NIL "Provides some special functions over an integral domain.")) (|iiAiryBi| ((|#2| |#2|) "\\spad{iiAiryBi(x)} should be local but conditional.")) (|iiAiryAi| ((|#2| |#2|) "\\spad{iiAiryAi(x)} should be local but conditional.")) (|iiBesselK| ((|#2| (|List| |#2|)) "\\spad{iiBesselK(x)} should be local but conditional.")) (|iiBesselI| ((|#2| (|List| |#2|)) "\\spad{iiBesselI(x)} should be local but conditional.")) (|iiBesselY| ((|#2| (|List| |#2|)) "\\spad{iiBesselY(x)} should be local but conditional.")) (|iiBesselJ| ((|#2| (|List| |#2|)) "\\spad{iiBesselJ(x)} should be local but conditional.")) (|iipolygamma| ((|#2| (|List| |#2|)) "\\spad{iipolygamma(x)} should be local but conditional.")) (|iidigamma| ((|#2| |#2|) "\\spad{iidigamma(x)} should be local but conditional.")) (|iiBeta| ((|#2| (|List| |#2|)) "iiGamma(\\spad{x}) should be local but conditional.")) (|iiabs| ((|#2| |#2|) "\\spad{iiabs(x)} should be local but conditional.")) (|iiGamma| ((|#2| |#2|) "\\spad{iiGamma(x)} should be local but conditional.")) (|airyBi| ((|#2| |#2|) "\\spad{airyBi(x)} returns the airybi function applied to \\spad{x}")) (|airyAi| ((|#2| |#2|) "\\spad{airyAi(x)} returns the airyai function applied to \\spad{x}")) (|besselK| ((|#2| |#2| |#2|) "\\spad{besselK(x,{}y)} returns the besselk function applied to \\spad{x} and \\spad{y}")) (|besselI| ((|#2| |#2| |#2|) "\\spad{besselI(x,{}y)} returns the besseli function applied to \\spad{x} and \\spad{y}")) (|besselY| ((|#2| |#2| |#2|) "\\spad{besselY(x,{}y)} returns the bessely function applied to \\spad{x} and \\spad{y}")) (|besselJ| ((|#2| |#2| |#2|) "\\spad{besselJ(x,{}y)} returns the besselj function applied to \\spad{x} and \\spad{y}")) (|polygamma| ((|#2| |#2| |#2|) "\\spad{polygamma(x,{}y)} returns the polygamma function applied to \\spad{x} and \\spad{y}")) (|digamma| ((|#2| |#2|) "\\spad{digamma(x)} returns the digamma function applied to \\spad{x}")) (|Beta| ((|#2| |#2| |#2|) "\\spad{Beta(x,{}y)} returns the beta function applied to \\spad{x} and \\spad{y}")) (|Gamma| ((|#2| |#2| |#2|) "\\spad{Gamma(a,{}x)} returns the incomplete Gamma function applied to a and \\spad{x}") ((|#2| |#2|) "\\spad{Gamma(f)} returns the formal Gamma function applied to \\spad{f}")) (|abs| ((|#2| |#2|) "\\spad{abs(f)} returns the absolute value operator applied to \\spad{f}")) (|operator| (((|BasicOperator|) (|BasicOperator|)) "\\spad{operator(op)} returns a copy of \\spad{op} with the domain-dependent properties appropriate for \\spad{F}; error if \\spad{op} is not a special function operator")) (|belong?| (((|Boolean|) (|BasicOperator|)) "\\spad{belong?(op)} is \\spad{true} if \\spad{op} is a special function operator."))) 
@@ -1742,16 +1742,16 @@ NIL
 NIL 
 (-453) 
 ((|constructor| (NIL "This category describes domains where \\spadfun{\\spad{gcd}} can be computed but where there is no guarantee of the existence of \\spadfun{factor} operation for factorisation into irreducibles. However,{} if such a \\spadfun{factor} operation exist,{} factorization will be unique up to order and units.")) (|gcdPolynomial| (((|SparseUnivariatePolynomial| $) (|SparseUnivariatePolynomial| $) (|SparseUnivariatePolynomial| $)) "\\spad{gcdPolynomial(p,{}q)} returns the greatest common divisor (\\spad{gcd}) of univariate polynomials over the domain")) (|lcm| (($ (|List| $)) "\\spad{lcm(l)} returns the least common multiple of the elements of the list \\spad{l}.") (($ $ $) "\\spad{lcm(x,{}y)} returns the least common multiple of \\spad{x} and \\spad{y}.")) (|gcd| (($ (|List| $)) "\\spad{gcd(l)} returns the common \\spad{gcd} of the elements in the list \\spad{l}.") (($ $ $) "\\spad{gcd(x,{}y)} returns the greatest common divisor of \\spad{x} and \\spad{y}."))) 
-((-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-454 R |n| |ls| |gamma|) 
 ((|constructor| (NIL "AlgebraGenericElementPackage allows you to create generic elements of an algebra,{} \\spadignore{i.e.} the scalars are extended to include symbolic coefficients")) (|conditionsForIdempotents| (((|List| (|Polynomial| |#1|))) "\\spad{conditionsForIdempotents()} determines a complete list of polynomial equations for the coefficients of idempotents with respect to the fixed \\spad{R}-module basis") (((|List| (|Polynomial| |#1|)) (|Vector| $)) "\\spad{conditionsForIdempotents([v1,{}...,{}vn])} determines a complete list of polynomial equations for the coefficients of idempotents with respect to the \\spad{R}-module basis \\spad{v1},{}...,{}\\spad{vn}")) (|genericRightDiscriminant| (((|Fraction| (|Polynomial| |#1|))) "\\spad{genericRightDiscriminant()} is the determinant of the generic left trace forms of all products of basis element,{} if the generic left trace form is associative,{} an algebra is separable if the generic left discriminant is invertible,{} if it is non-zero,{} there is some ring extension which makes the algebra separable")) (|genericRightTraceForm| (((|Fraction| (|Polynomial| |#1|)) $ $) "\\spad{genericRightTraceForm (a,{}b)} is defined to be \\spadfun{genericRightTrace (a*b)},{} this defines a symmetric bilinear form on the algebra")) (|genericLeftDiscriminant| (((|Fraction| (|Polynomial| |#1|))) "\\spad{genericLeftDiscriminant()} is the determinant of the generic left trace forms of all products of basis element,{} if the generic left trace form is associative,{} an algebra is separable if the generic left discriminant is invertible,{} if it is non-zero,{} there is some ring extension which makes the algebra separable")) (|genericLeftTraceForm| (((|Fraction| (|Polynomial| |#1|)) $ $) "\\spad{genericLeftTraceForm (a,{}b)} is defined to be \\spad{genericLeftTrace (a*b)},{} this defines a symmetric bilinear form on the algebra")) (|genericRightNorm| (((|Fraction| (|Polynomial| |#1|)) $) "\\spad{genericRightNorm(a)} substitutes the coefficients of \\spad{a} for the generic coefficients into the coefficient of the constant term in \\spadfun{rightRankPolynomial} and changes the sign if the degree of this polynomial is odd")) (|genericRightTrace| (((|Fraction| (|Polynomial| |#1|)) $) "\\spad{genericRightTrace(a)} substitutes the coefficients of \\spad{a} for the generic coefficients into the coefficient of the second highest term in \\spadfun{rightRankPolynomial} and changes the sign")) (|genericRightMinimalPolynomial| (((|SparseUnivariatePolynomial| (|Fraction| (|Polynomial| |#1|))) $) "\\spad{genericRightMinimalPolynomial(a)} substitutes the coefficients of \\spad{a} for the generic coefficients in \\spadfun{rightRankPolynomial}")) (|rightRankPolynomial| (((|SparseUnivariatePolynomial| (|Fraction| (|Polynomial| |#1|)))) "\\spad{rightRankPolynomial()} returns the right minimimal polynomial of the generic element")) (|genericLeftNorm| (((|Fraction| (|Polynomial| |#1|)) $) "\\spad{genericLeftNorm(a)} substitutes the coefficients of \\spad{a} for the generic coefficients into the coefficient of the constant term in \\spadfun{leftRankPolynomial} and changes the sign if the degree of this polynomial is odd. This is a form of degree \\spad{k}")) (|genericLeftTrace| (((|Fraction| (|Polynomial| |#1|)) $) "\\spad{genericLeftTrace(a)} substitutes the coefficients of \\spad{a} for the generic coefficients into the coefficient of the second highest term in \\spadfun{leftRankPolynomial} and changes the sign. \\indented{1}{This is a linear form}")) (|genericLeftMinimalPolynomial| (((|SparseUnivariatePolynomial| (|Fraction| (|Polynomial| |#1|))) $) "\\spad{genericLeftMinimalPolynomial(a)} substitutes the coefficients of {em a} for the generic coefficients in \\spad{leftRankPolynomial()}")) (|leftRankPolynomial| (((|SparseUnivariatePolynomial| (|Fraction| (|Polynomial| |#1|)))) "\\spad{leftRankPolynomial()} returns the left minimimal polynomial of the generic element")) (|generic| (($ (|Vector| (|Symbol|)) (|Vector| $)) "\\spad{generic(vs,{}ve)} returns a generic element,{} \\spadignore{i.e.} the linear combination of \\spad{ve} with the symbolic coefficients \\spad{vs} error,{} if the vector of symbols is shorter than the vector of elements") (($ (|Symbol|) (|Vector| $)) "\\spad{generic(s,{}v)} returns a generic element,{} \\spadignore{i.e.} the linear combination of \\spad{v} with the symbolic coefficients \\spad{s1,{}s2,{}..}") (($ (|Vector| $)) "\\spad{generic(ve)} returns a generic element,{} \\spadignore{i.e.} the linear combination of \\spad{ve} basis with the symbolic coefficients \\spad{\\%x1,{}\\%x2,{}..}") (($ (|Vector| (|Symbol|))) "\\spad{generic(vs)} returns a generic element,{} \\spadignore{i.e.} the linear combination of the fixed basis with the symbolic coefficients \\spad{vs}; error,{} if the vector of symbols is too short") (($ (|Symbol|)) "\\spad{generic(s)} returns a generic element,{} \\spadignore{i.e.} the linear combination of the fixed basis with the symbolic coefficients \\spad{s1,{}s2,{}..}") (($) "\\spad{generic()} returns a generic element,{} \\spadignore{i.e.} the linear combination of the fixed basis with the symbolic coefficients \\spad{\\%x1,{}\\%x2,{}..}")) (|rightUnits| (((|Union| (|Record| (|:| |particular| $) (|:| |basis| (|List| $))) "failed")) "\\spad{rightUnits()} returns the affine space of all right units of the algebra,{} or \\spad{\"failed\"} if there is none")) (|leftUnits| (((|Union| (|Record| (|:| |particular| $) (|:| |basis| (|List| $))) "failed")) "\\spad{leftUnits()} returns the affine space of all left units of the algebra,{} or \\spad{\"failed\"} if there is none")) (|coerce| (($ (|Vector| (|Fraction| (|Polynomial| |#1|)))) "\\spad{coerce(v)} assumes that it is called with a vector of length equal to the dimension of the algebra,{} then a linear combination with the basis element is formed"))) 
-((-4516 |has| (-409 (-953 |#1|)) (-558)) (-4514 . T) (-4513 . T)) 
+((-4518 |has| (-409 (-953 |#1|)) (-558)) (-4516 . T) (-4515 . T)) 
 ((|HasCategory| (-409 (-953 |#1|)) (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| (-409 (-953 |#1|)) (QUOTE (-558)))) 
 (-455 |vl| R E) 
 ((|constructor| (NIL "This type supports distributed multivariate polynomials whose variables are from a user specified list of symbols. The coefficient ring may be non commutative,{} but the variables are assumed to commute. The term ordering is specified by its third parameter. Suggested types which define term orderings include: \\spadtype{DirectProduct},{} \\spadtype{HomogeneousDirectProduct},{} \\spadtype{SplitHomogeneousDirectProduct} and finally \\spadtype{OrderedDirectProduct} which accepts an arbitrary user function to define a term ordering.")) (|reorder| (($ $ (|List| (|Integer|))) "\\spad{reorder(p,{} perm)} applies the permutation perm to the variables in a polynomial and returns the new correctly ordered polynomial"))) 
-(((-4521 "*") |has| |#2| (-172)) (-4512 |has| |#2| (-558)) (-4517 |has| |#2| (-6 -4517)) (-4514 . T) (-4513 . T) (-4516 . T)) 
-((|HasCategory| |#2| (QUOTE (-904))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-172))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-558)))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#2| (QUOTE (-842))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-365))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasAttribute| |#2| (QUOTE -4517)) (|HasCategory| |#2| (QUOTE (-453))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2198 (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2198 (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (|HasCategory| |#2| (QUOTE (-148))))) 
+(((-4523 "*") |has| |#2| (-172)) (-4514 |has| |#2| (-558)) (-4519 |has| |#2| (-6 -4519)) (-4516 . T) (-4515 . T) (-4518 . T)) 
+((|HasCategory| |#2| (QUOTE (-904))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-172))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-558)))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#2| (QUOTE (-842))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-365))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasAttribute| |#2| (QUOTE -4519)) (|HasCategory| |#2| (QUOTE (-453))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2199 (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2199 (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (|HasCategory| |#2| (QUOTE (-148))))) 
 (-456) 
 ((|constructor| (NIL "This package provides support for gnuplot. These routines generate output files contain gnuplot scripts that may be processed directly by gnuplot. This is especially convenient in the axiom-wiki environment where gnuplot is called from LaTeX via gnuplottex.")) (|gnuDraw| (((|Void|) (|Expression| (|Float|)) (|SegmentBinding| (|Float|)) (|SegmentBinding| (|Float|)) (|String|)) "\\indented{1}{\\spad{gnuDraw} provides 3d surface plotting,{} default options} \\blankline \\spad{X} gnuDraw(sin(\\spad{x})*cos(\\spad{y}),{}\\spad{x=}-6..4,{}\\spad{y=}-4..6,{}\"out3d.dat\") \\spad{X} )\\spad{sys} gnuplot -persist out3d.dat") (((|Void|) (|Expression| (|Float|)) (|SegmentBinding| (|Float|)) (|SegmentBinding| (|Float|)) (|String|) (|List| (|DrawOption|))) "\\indented{1}{\\spad{gnuDraw} provides 3d surface plotting with options} \\blankline \\spad{X} gnuDraw(sin(\\spad{x})*cos(\\spad{y}),{}\\spad{x=}-6..4,{}\\spad{y=}-4..6,{}\"out3d.dat\",{}title==\"out3d\") \\spad{X} )\\spad{sys} gnuplot -persist out3d.dat") (((|Void|) (|Expression| (|Float|)) (|SegmentBinding| (|Float|)) (|String|)) "\\indented{1}{\\spad{gnuDraw} provides 2d plotting,{} default options} \\blankline \\spad{X} gnuDraw(\\spad{D}(cos(exp(\\spad{z}))/exp(\\spad{z^2}),{}\\spad{z}),{}\\spad{z=}-5..5,{}\"out2d.dat\") \\spad{X} )\\spad{sys} gnuplot -persist out2d.dat") (((|Void|) (|Expression| (|Float|)) (|SegmentBinding| (|Float|)) (|String|) (|List| (|DrawOption|))) "\\indented{1}{\\spad{gnuDraw} provides 2d plotting with options} \\blankline \\spad{X} gnuDraw(\\spad{D}(cos(exp(\\spad{z}))/exp(\\spad{z^2}),{}\\spad{z}),{}\\spad{z=}-5..5,{}\"out2d.dat\",{}title==\"out2d\") \\spad{X} )\\spad{sys} gnuplot -persist out2d.dat"))) 
 NIL 
@@ -1782,7 +1782,7 @@ NIL
 NIL 
 (-463 |vl| R IS E |ff| P) 
 ((|constructor| (NIL "This package is undocumented")) (* (($ |#6| $) "\\spad{p*x} is not documented")) (|multMonom| (($ |#2| |#4| $) "\\spad{multMonom(r,{}e,{}x)} is not documented")) (|build| (($ |#2| |#3| |#4|) "\\spad{build(r,{}i,{}e)} is not documented")) (|unitVector| (($ |#3|) "\\spad{unitVector(x)} is not documented")) (|monomial| (($ |#2| (|ModuleMonomial| |#3| |#4| |#5|)) "\\spad{monomial(r,{}x)} is not documented")) (|reductum| (($ $) "\\spad{reductum(x)} is not documented")) (|leadingIndex| ((|#3| $) "\\spad{leadingIndex(x)} is not documented")) (|leadingExponent| ((|#4| $) "\\spad{leadingExponent(x)} is not documented")) (|leadingMonomial| (((|ModuleMonomial| |#3| |#4| |#5|) $) "\\spad{leadingMonomial(x)} is not documented")) (|leadingCoefficient| ((|#2| $) "\\spad{leadingCoefficient(x)} is not documented"))) 
-((-4514 . T) (-4513 . T)) 
+((-4516 . T) (-4515 . T)) 
 NIL 
 (-464) 
 ((|constructor| (NIL "\\spad{GuessOptionFunctions0} provides operations that extract the values of options for \\spadtype{Guess}.")) (|debug| (((|Boolean|) (|List| (|GuessOption|))) "\\spad{debug returns} whether we want additional output on the progress,{} default being \\spad{false}")) (|displayAsGF| (((|Boolean|) (|List| (|GuessOption|))) "\\spad{displayAsGF specifies} whether the result is a generating function or a recurrence. This option should not be set by the user,{} but rather by the \\spad{HP}-specification,{} therefore,{} there is no default.")) (|indexName| (((|Symbol|) (|List| (|GuessOption|))) "\\spad{indexName returns} the name of the index variable used for the formulas,{} default being \\spad{n}")) (|variableName| (((|Symbol|) (|List| (|GuessOption|))) "\\spad{variableName returns} the name of the variable used in by the algebraic differential equation,{} default being \\spad{x}")) (|functionName| (((|Symbol|) (|List| (|GuessOption|))) "\\spad{functionName returns} the name of the function given by the algebraic differential equation,{} default being \\spad{f}")) (|homogeneous| (((|Boolean|) (|List| (|GuessOption|))) "\\spad{homogeneous returns} whether we allow only homogeneous algebraic differential equations,{} default being \\spad{false}")) (|one| (((|Boolean|) (|List| (|GuessOption|))) "\\spad{one returns} whether we need only one solution,{} default being \\spad{true}.")) (|safety| (((|NonNegativeInteger|) (|List| (|GuessOption|))) "\\spad{safety returns} the specified safety or 1 as default.")) (|allDegrees| (((|Boolean|) (|List| (|GuessOption|))) "\\spad{allDegrees returns} whether all possibilities of the degree vector should be tried,{} the default being \\spad{false}.")) (|maxDegree| (((|Integer|) (|List| (|GuessOption|))) "\\spad{maxDegree returns} the specified maxDegree or \\spad{-1} as default.")) (|maxShift| (((|Integer|) (|List| (|GuessOption|))) "\\spad{maxShift returns} the specified maxShift or \\spad{-1} as default.")) (|maxDerivative| (((|Integer|) (|List| (|GuessOption|))) "\\spad{maxDerivative returns} the specified maxDerivative or \\spad{-1} as default.")) (|maxPower| (((|Integer|) (|List| (|GuessOption|))) "\\spad{maxPower returns} the specified maxPower or \\spad{-1} as default.")) (|maxLevel| (((|Integer|) (|List| (|GuessOption|))) "\\spad{maxLevel returns} the specified maxLevel or \\spad{-1} as default."))) 
@@ -1802,7 +1802,7 @@ NIL
 ((|HasCategory| |#1| (QUOTE (-370)))) 
 (-468 R E |VarSet| P) 
 ((|constructor| (NIL "A domain for polynomial sets.")) (|convert| (($ (|List| |#4|)) "\\axiom{convert(\\spad{lp})} returns the polynomial set whose members are the polynomials of \\axiom{\\spad{lp}}."))) 
-((-4520 . T) (-4519 . T)) 
+((-4522 . T) (-4521 . T)) 
 ((|HasCategory| |#4| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#4| (QUOTE (-1090))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-558)))) 
 (-469 S R E) 
 ((|constructor| (NIL "GradedAlgebra(\\spad{R},{}\\spad{E}) denotes ``E-graded \\spad{R}-algebra\\spad{''}. A graded algebra is a graded module together with a degree preserving \\spad{R}-linear map,{} called the product. \\blankline The name ``product\\spad{''} is written out in full so inner and outer products with the same mapping type can be distinguished by name.")) (|product| (($ $ $) "\\spad{product(a,{}b)} is the degree-preserving \\spad{R}-linear product: \\blankline \\indented{2}{\\spad{degree product(a,{}b) = degree a + degree b}} \\indented{2}{\\spad{product(a1+a2,{}b) = product(a1,{}b) + product(a2,{}b)}} \\indented{2}{\\spad{product(a,{}b1+b2) = product(a,{}b1) + product(a,{}b2)}} \\indented{2}{\\spad{product(r*a,{}b) = product(a,{}r*b) = r*product(a,{}b)}} \\indented{2}{\\spad{product(a,{}product(b,{}c)) = product(product(a,{}b),{}c)}}")) ((|One|) (($) "1 is the identity for \\spad{product}."))) 
@@ -1842,19 +1842,19 @@ NIL
 NIL 
 (-478) 
 ((|constructor| (NIL "The class of multiplicative groups,{} \\spadignore{i.e.} monoids with multiplicative inverses. \\blankline Axioms\\spad{\\br} \\tab{5}\\spad{leftInverse(\"*\":(\\%,{}\\%)->\\%,{}inv)}\\tab{5}\\spad{ inv(x)*x = 1 }\\spad{\\br} \\tab{5}\\spad{rightInverse(\"*\":(\\%,{}\\%)->\\%,{}inv)}\\tab{4}\\spad{ x*inv(x) = 1 }")) (|commutator| (($ $ $) "\\spad{commutator(p,{}q)} computes \\spad{inv(p) * inv(q) * p * q}.")) (|conjugate| (($ $ $) "\\spad{conjugate(p,{}q)} computes \\spad{inv(q) * p * q}; this is 'right action by conjugation'.")) (|unitsKnown| ((|attribute|) "unitsKnown asserts that recip only returns \"failed\" for non-units.")) (^ (($ $ (|Integer|)) "\\spad{x^n} returns \\spad{x} raised to the integer power \\spad{n}.")) (** (($ $ (|Integer|)) "\\spad{x**n} returns \\spad{x} raised to the integer power \\spad{n}.")) (/ (($ $ $) "\\spad{x/y} is the same as \\spad{x} times the inverse of \\spad{y}.")) (|inv| (($ $) "\\spad{inv(x)} returns the inverse of \\spad{x}."))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-479 |Coef| |var| |cen|) 
 ((|constructor| (NIL "This is a category of univariate Puiseux series constructed from univariate Laurent series. A Puiseux series is represented by a pair \\spad{[r,{}f(x)]},{} where \\spad{r} is a positive rational number and \\spad{f(x)} is a Laurent series. This pair represents the Puiseux series \\spad{f(x\\^r)}.")) (|integrate| (($ $ (|Variable| |#2|)) "\\spad{integrate(f(x))} returns an anti-derivative of the power series \\spad{f(x)} with constant coefficient 0. We may integrate a series when we can divide coefficients by integers.")) (|differentiate| (($ $ (|Variable| |#2|)) "\\spad{differentiate(f(x),{}x)} returns the derivative of \\spad{f(x)} with respect to \\spad{x}.")) (|coerce| (($ (|UnivariatePuiseuxSeries| |#1| |#2| |#3|)) "\\spad{coerce(f)} converts a Puiseux series to a general power series.") (($ (|Variable| |#2|)) "\\spad{coerce(var)} converts the series variable \\spad{var} into a Puiseux series."))) 
-(((-4521 "*") |has| |#1| (-172)) (-4512 |has| |#1| (-558)) (-4517 |has| |#1| (-365)) (-4511 |has| |#1| (-365)) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (-2198 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558)))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasSignature| |#1| (LIST (QUOTE *) (LIST (|devaluate| |#1|) (LIST (QUOTE -409) (QUOTE (-568))) (|devaluate| |#1|)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasSignature| |#1| (LIST (QUOTE *) (LIST (|devaluate| |#1|) (LIST (QUOTE -409) (QUOTE (-568))) (|devaluate| |#1|))))) (|HasCategory| (-409 (-568)) (QUOTE (-1102))) (|HasCategory| |#1| (QUOTE (-365))) (-2198 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-558)))) (-2198 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-558)))) (|HasSignature| |#1| (LIST (QUOTE **) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasSignature| |#1| (LIST (QUOTE **) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasSignature| |#1| (LIST (QUOTE -2745) (LIST (|devaluate| |#1|) (QUOTE (-1161)))))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -29) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-959))) (|HasCategory| |#1| (QUOTE (-1181)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasSignature| |#1| (LIST (QUOTE -3837) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (QUOTE (-1161))))) (|HasSignature| |#1| (LIST (QUOTE -2055) (LIST (LIST (QUOTE -634) (QUOTE (-1161))) (|devaluate| |#1|))))))) 
+(((-4523 "*") |has| |#1| (-172)) (-4514 |has| |#1| (-558)) (-4519 |has| |#1| (-365)) (-4513 |has| |#1| (-365)) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (-2199 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558)))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasSignature| |#1| (LIST (QUOTE *) (LIST (|devaluate| |#1|) (LIST (QUOTE -409) (QUOTE (-568))) (|devaluate| |#1|)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasSignature| |#1| (LIST (QUOTE *) (LIST (|devaluate| |#1|) (LIST (QUOTE -409) (QUOTE (-568))) (|devaluate| |#1|))))) (|HasCategory| (-409 (-568)) (QUOTE (-1102))) (|HasCategory| |#1| (QUOTE (-365))) (-2199 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-558)))) (-2199 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-558)))) (|HasSignature| |#1| (LIST (QUOTE **) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasSignature| |#1| (LIST (QUOTE **) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasSignature| |#1| (LIST (QUOTE -2747) (LIST (|devaluate| |#1|) (QUOTE (-1161)))))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -29) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-959))) (|HasCategory| |#1| (QUOTE (-1181)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasSignature| |#1| (LIST (QUOTE -1845) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (QUOTE (-1161))))) (|HasSignature| |#1| (LIST (QUOTE -2057) (LIST (LIST (QUOTE -634) (QUOTE (-1161))) (|devaluate| |#1|))))))) 
 (-480 |Key| |Entry| |Tbl| |dent|) 
 ((|constructor| (NIL "A sparse table has a default entry,{} which is returned if no other value has been explicitly stored for a key."))) 
-((-4520 . T)) 
-((|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#2| (QUOTE (-1090))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))) (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-1090))) (-12 (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3649) (|devaluate| |#1|)) (LIST (QUOTE |:|) (QUOTE -4083) (|devaluate| |#2|))))) (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-1090)))) (-2198 (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-1090))))) 
+((-4522 . T)) 
+((|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#2| (QUOTE (-1090))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))) (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-1090))) (-12 (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3651) (|devaluate| |#1|)) (LIST (QUOTE |:|) (QUOTE -4085) (|devaluate| |#2|))))) (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-1090)))) (-2199 (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-1090))))) 
 (-481 R E V P) 
 ((|constructor| (NIL "A domain constructor of the category \\axiomType{TriangularSetCategory}. The only requirement for a list of polynomials to be a member of such a domain is the following: no polynomial is constant and two distinct polynomials have distinct main variables. Such a triangular set may not be auto-reduced or consistent. Triangular sets are stored as sorted lists \\spad{w}.\\spad{r}.\\spad{t}. the main variables of their members but they are displayed in reverse order."))) 
-((-4520 . T) (-4519 . T)) 
+((-4522 . T) (-4521 . T)) 
 ((|HasCategory| |#4| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#4| (QUOTE (-1090))) (-12 (|HasCategory| |#4| (LIST (QUOTE -303) (|devaluate| |#4|))) (|HasCategory| |#4| (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#3| (QUOTE (-370)))) 
 (-482) 
 ((|constructor| (NIL "This package exports guessing of sequences of rational functions"))) 
@@ -1872,7 +1872,7 @@ NIL
 ((|constructor| (NIL "This package exports guessing of sequences of rational numbers"))) 
 NIL 
 ((-12 (|HasCategory| (-409 (-568)) (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| (-568) (LIST (QUOTE -1037) (QUOTE (-1161)))))) 
-(-486 -1478 S EXPRR R -2854 -2745) 
+(-486 -1478 S EXPRR R -2857 -2747) 
 ((|constructor| (NIL "This package implements guessing of sequences. Packages for the most common cases are provided as \\spadtype{GuessInteger},{} \\spadtype{GuessPolynomial},{} etc.")) (|shiftHP| (((|Mapping| (|Record| (|:| |guessStream| (|Mapping| (|Stream| (|UnivariateFormalPowerSeries| |#1|)) (|UnivariateFormalPowerSeries| |#1|))) (|:| |degreeStream| (|Stream| (|NonNegativeInteger|))) (|:| |testStream| (|Mapping| (|Stream| (|UnivariateFormalPowerSeries| (|SparseUnivariatePolynomial| |#1|))) (|UnivariateFormalPowerSeries| (|SparseUnivariatePolynomial| |#1|)))) (|:| |exprStream| (|Mapping| (|Stream| |#3|) |#3| (|Symbol|))) (|:| A (|Mapping| |#2| (|NonNegativeInteger|) (|NonNegativeInteger|) (|SparseUnivariatePolynomial| |#2|))) (|:| AF (|Mapping| (|SparseUnivariatePolynomial| |#1|) (|NonNegativeInteger|) (|NonNegativeInteger|) (|UnivariateFormalPowerSeries| (|SparseUnivariatePolynomial| |#1|)))) (|:| AX (|Mapping| |#3| (|NonNegativeInteger|) (|Symbol|) |#3|)) (|:| C (|Mapping| (|List| |#2|) (|NonNegativeInteger|)))) (|List| (|GuessOption|))) (|Symbol|)) "\\spad{shiftHP options} returns a specification for Hermite-Pade approximation with the \\$\\spad{q}\\$-shift operator") (((|Record| (|:| |guessStream| (|Mapping| (|Stream| (|UnivariateFormalPowerSeries| |#1|)) (|UnivariateFormalPowerSeries| |#1|))) (|:| |degreeStream| (|Stream| (|NonNegativeInteger|))) (|:| |testStream| (|Mapping| (|Stream| (|UnivariateFormalPowerSeries| (|SparseUnivariatePolynomial| |#1|))) (|UnivariateFormalPowerSeries| (|SparseUnivariatePolynomial| |#1|)))) (|:| |exprStream| (|Mapping| (|Stream| |#3|) |#3| (|Symbol|))) (|:| A (|Mapping| |#2| (|NonNegativeInteger|) (|NonNegativeInteger|) (|SparseUnivariatePolynomial| |#2|))) (|:| AF (|Mapping| (|SparseUnivariatePolynomial| |#1|) (|NonNegativeInteger|) (|NonNegativeInteger|) (|UnivariateFormalPowerSeries| (|SparseUnivariatePolynomial| |#1|)))) (|:| AX (|Mapping| |#3| (|NonNegativeInteger|) (|Symbol|) |#3|)) (|:| C (|Mapping| (|List| |#2|) (|NonNegativeInteger|)))) (|List| (|GuessOption|))) "\\spad{shiftHP options} returns a specification for Hermite-Pade approximation with the shift operator")) (|diffHP| (((|Mapping| (|Record| (|:| |guessStream| (|Mapping| (|Stream| (|UnivariateFormalPowerSeries| |#1|)) (|UnivariateFormalPowerSeries| |#1|))) (|:| |degreeStream| (|Stream| (|NonNegativeInteger|))) (|:| |testStream| (|Mapping| (|Stream| (|UnivariateFormalPowerSeries| (|SparseUnivariatePolynomial| |#1|))) (|UnivariateFormalPowerSeries| (|SparseUnivariatePolynomial| |#1|)))) (|:| |exprStream| (|Mapping| (|Stream| |#3|) |#3| (|Symbol|))) (|:| A (|Mapping| |#2| (|NonNegativeInteger|) (|NonNegativeInteger|) (|SparseUnivariatePolynomial| |#2|))) (|:| AF (|Mapping| (|SparseUnivariatePolynomial| |#1|) (|NonNegativeInteger|) (|NonNegativeInteger|) (|UnivariateFormalPowerSeries| (|SparseUnivariatePolynomial| |#1|)))) (|:| AX (|Mapping| |#3| (|NonNegativeInteger|) (|Symbol|) |#3|)) (|:| C (|Mapping| (|List| |#2|) (|NonNegativeInteger|)))) (|List| (|GuessOption|))) (|Symbol|)) "\\spad{diffHP options} returns a specification for Hermite-Pade approximation with the \\$\\spad{q}\\$-dilation operator") (((|Record| (|:| |guessStream| (|Mapping| (|Stream| (|UnivariateFormalPowerSeries| |#1|)) (|UnivariateFormalPowerSeries| |#1|))) (|:| |degreeStream| (|Stream| (|NonNegativeInteger|))) (|:| |testStream| (|Mapping| (|Stream| (|UnivariateFormalPowerSeries| (|SparseUnivariatePolynomial| |#1|))) (|UnivariateFormalPowerSeries| (|SparseUnivariatePolynomial| |#1|)))) (|:| |exprStream| (|Mapping| (|Stream| |#3|) |#3| (|Symbol|))) (|:| A (|Mapping| |#2| (|NonNegativeInteger|) (|NonNegativeInteger|) (|SparseUnivariatePolynomial| |#2|))) (|:| AF (|Mapping| (|SparseUnivariatePolynomial| |#1|) (|NonNegativeInteger|) (|NonNegativeInteger|) (|UnivariateFormalPowerSeries| (|SparseUnivariatePolynomial| |#1|)))) (|:| AX (|Mapping| |#3| (|NonNegativeInteger|) (|Symbol|) |#3|)) (|:| C (|Mapping| (|List| |#2|) (|NonNegativeInteger|)))) (|List| (|GuessOption|))) "\\spad{diffHP options} returns a specification for Hermite-Pade approximation with the differential operator")) (|guessRat| (((|Mapping| (|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|))) (|Symbol|)) "\\spad{guessRat q} returns a guesser that tries to find a \\spad{q}-rational function whose first values are given by \\spad{l},{} using the given options. It is equivalent to \\spadfun{guessRec} with \\spad{(l,{} maxShift == 0,{} maxPower == 1,{} allDegrees == true)}.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|)) "\\spad{guessRat l} tries to find a rational function whose first values are given by \\spad{l},{} using the default options described in \\spadtype{GuessOptionFunctions0}. It is equivalent to \\spadfun{guessRec}\\spad{(l,{} maxShift == 0,{} maxPower == 1,{} allDegrees == true)}.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|))) "\\spad{guessRat(l,{} options)} tries to find a rational function whose first values are given by \\spad{l},{} using the given options. It is equivalent to \\spadfun{guessRec}\\spad{(l,{} maxShift == 0,{} maxPower == 1,{} allDegrees == true)}.")) (|guessPRec| (((|Mapping| (|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|))) (|Symbol|)) "\\spad{guessPRec q} returns a guesser that tries to find a linear \\spad{q}-recurrence with polynomial coefficients whose first values are given by \\spad{l},{} using the given options. It is equivalent to \\spadfun{guessRec}\\spad{(q)} with \\spad{maxPower == 1}.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|)) "\\spad{guessPRec l} tries to find a linear recurrence with polynomial coefficients whose first values are given by \\spad{l},{} using the default options described in \\spadtype{GuessOptionFunctions0}. It is equivalent to \\spadfun{guessRec}\\spad{(l,{} maxPower == 1)}.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|))) "\\spad{guessPRec(l,{} options)} tries to find a linear recurrence with polynomial coefficients whose first values are given by \\spad{l},{} using the given options. It is equivalent to \\spadfun{guessRec}\\spad{(l,{} options)} with \\spad{maxPower == 1}.")) (|guessRec| (((|Mapping| (|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|))) (|Symbol|)) "\\spad{guessRec q} returns a guesser that finds an ordinary \\spad{q}-difference equation whose first values are given by \\spad{l},{} using the given options.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|))) "\\spad{guessRec(l,{} options)} tries to find an ordinary difference equation whose first values are given by \\spad{l},{} using the given options.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|)) "\\spad{guessRec l} tries to find an ordinary difference equation whose first values are given by \\spad{l},{} using the default options described in \\spadtype{GuessOptionFunctions0}.")) (|guessPade| (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|)) "\\spad{guessPade(l,{} options)} tries to find a rational function whose first Taylor coefficients are given by \\spad{l},{} using the default options described in \\spadtype{GuessOptionFunctions0}. It is equivalent to \\spadfun{guessADE}\\spad{(l,{} options)} with \\spad{maxDerivative == 0,{} maxPower == 1,{} allDegrees == true}.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|))) "\\spad{guessPade(l,{} options)} tries to find a rational function whose first Taylor coefficients are given by \\spad{l},{} using the given options. It is equivalent to \\spadfun{guessADE}\\spad{(l,{} maxDerivative == 0,{} maxPower == 1,{} allDegrees == true)}.")) (|guessHolo| (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|))) "\\spad{guessHolo(l,{} options)} tries to find an ordinary linear differential equation for a generating function whose first Taylor coefficients are given by \\spad{l},{} using the given options. It is equivalent to \\spadfun{guessADE}\\spad{(l,{} options)} with \\spad{maxPower == 1}.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|)) "\\spad{guessHolo l} tries to find an ordinary linear differential equation for a generating function whose first Taylor coefficients are given by \\spad{l},{} using the default options described in \\spadtype{GuessOptionFunctions0}. It is equivalent to \\spadfun{guessADE}\\spad{(l,{} maxPower == 1)}.")) (|guessAlg| (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|))) "\\spad{guessAlg(l,{} options)} tries to find an algebraic equation for a generating function whose first Taylor coefficients are given by \\spad{l},{} using the given options. It is equivalent to \\spadfun{guessADE}(\\spad{l},{} options) with \\spad{maxDerivative == 0}.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|)) "\\spad{guessAlg l} tries to find an algebraic equation for a generating function whose first Taylor coefficients are given by \\spad{l},{} using the default options described in \\spadtype{GuessOptionFunctions0}. It is equivalent to \\spadfun{guessADE}(\\spad{l},{} maxDerivative \\spad{==} 0).")) (|guessADE| (((|Mapping| (|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|))) (|Symbol|)) "\\spad{guessADE q} returns a guesser that tries to find an algebraic differential equation for a generating function whose first Taylor coefficients are given by \\spad{l},{} using the given options.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|))) "\\spad{guessADE(l,{} options)} tries to find an algebraic differential equation for a generating function whose first Taylor coefficients are given by \\spad{l},{} using the given options.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|)) "\\spad{guessADE l} tries to find an algebraic differential equation for a generating function whose first Taylor coefficients are given by \\spad{l},{} using the default options described in \\spadtype{GuessOptionFunctions0}.")) (|guessHP| (((|Mapping| (|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|))) (|Mapping| (|Record| (|:| |guessStream| (|Mapping| (|Stream| (|UnivariateFormalPowerSeries| |#1|)) (|UnivariateFormalPowerSeries| |#1|))) (|:| |degreeStream| (|Stream| (|NonNegativeInteger|))) (|:| |testStream| (|Mapping| (|Stream| (|UnivariateFormalPowerSeries| (|SparseUnivariatePolynomial| |#1|))) (|UnivariateFormalPowerSeries| (|SparseUnivariatePolynomial| |#1|)))) (|:| |exprStream| (|Mapping| (|Stream| |#3|) |#3| (|Symbol|))) (|:| A (|Mapping| |#2| (|NonNegativeInteger|) (|NonNegativeInteger|) (|SparseUnivariatePolynomial| |#2|))) (|:| AF (|Mapping| (|SparseUnivariatePolynomial| |#1|) (|NonNegativeInteger|) (|NonNegativeInteger|) (|UnivariateFormalPowerSeries| (|SparseUnivariatePolynomial| |#1|)))) (|:| AX (|Mapping| |#3| (|NonNegativeInteger|) (|Symbol|) |#3|)) (|:| C (|Mapping| (|List| |#2|) (|NonNegativeInteger|)))) (|List| (|GuessOption|)))) "\\spad{guessHP f} constructs an operation that applies Hermite-Pade approximation to the series generated by the given function \\spad{f}.")) (|guessBinRat| (((|Mapping| (|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|))) (|Symbol|)) "\\spad{guessBinRat q} returns a guesser that tries to find a function of the form \\spad{n+}->qbinomial(a+b \\spad{n},{} \\spad{n}) \\spad{r}(\\spad{n}),{} where \\spad{r}(\\spad{q^n}) is a \\spad{q}-rational function,{} that fits \\spad{l}.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|))) "\\spad{guessBinRat(l,{} options)} tries to find a function of the form \\spad{n+}->binomial(a+b \\spad{n},{} \\spad{n}) \\spad{r}(\\spad{n}),{} where \\spad{r}(\\spad{n}) is a rational function,{} that fits \\spad{l}.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|)) "\\spad{guessBinRat(l,{} options)} tries to find a function of the form \\spad{n+}->binomial(a+b \\spad{n},{} \\spad{n}) \\spad{r}(\\spad{n}),{} where \\spad{r}(\\spad{n}) is a rational function,{} that fits \\spad{l}.")) (|guessExpRat| (((|Mapping| (|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|))) (|Symbol|)) "\\spad{guessExpRat q} returns a guesser that tries to find a function of the form \\spad{n+}->(a+b \\spad{q^n})\\spad{^n} \\spad{r}(\\spad{q^n}),{} where \\spad{r}(\\spad{q^n}) is a \\spad{q}-rational function,{} that fits \\spad{l}.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|))) "\\spad{guessExpRat(l,{} options)} tries to find a function of the form \\spad{n+}->(a+b \\spad{n})\\spad{^n} \\spad{r}(\\spad{n}),{} where \\spad{r}(\\spad{n}) is a rational function,{} that fits \\spad{l}.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|)) "\\spad{guessExpRat l} tries to find a function of the form \\spad{n+}->(a+b \\spad{n})\\spad{^n} \\spad{r}(\\spad{n}),{} where \\spad{r}(\\spad{n}) is a rational function,{} that fits \\spad{l}.")) (|guess| (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|Mapping| (|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|)))) (|List| (|Symbol|)) (|List| (|GuessOption|))) "\\spad{guess(l,{} guessers,{} ops)} applies recursively the given \\spad{guessers} to the successive differences if ops contains the symbol \\spad{guessSum} and quotients if ops contains the symbol \\spad{guessProduct} to the list. The given options are used.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|Mapping| (|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|)))) (|List| (|Symbol|))) "\\spad{guess(l,{} guessers,{} ops)} applies recursively the given \\spad{guessers} to the successive differences if ops contains the symbol guessSum and quotients if ops contains the symbol guessProduct to the list. Default options as described in \\spadtype{GuessOptionFunctions0} are used.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|) (|List| (|GuessOption|))) "\\spad{guess(l,{} options)} applies recursively \\spadfun{guessRec} and \\spadfun{guessADE} to the successive differences and quotients of the list. The given options are used.") (((|List| (|Record| (|:| |function| |#3|) (|:| |order| (|NonNegativeInteger|)))) (|List| |#1|)) "\\spad{guess l} applies recursively \\spadfun{guessRec} and \\spadfun{guessADE} to the successive differences and quotients of the list. Default options as described in \\spadtype{GuessOptionFunctions0} are used."))) 
 NIL 
 ((-12 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-1161)))))) 
@@ -1886,27 +1886,27 @@ NIL
 NIL 
 (-489) 
 ((|constructor| (NIL "Symbolic fractions in \\%\\spad{pi} with integer coefficients; The point for using \\spad{Pi} as the default domain for those fractions is that \\spad{Pi} is coercible to the float types,{} and not Expression.")) (|pi| (($) "\\spad{\\spad{pi}()} returns the symbolic \\%\\spad{pi}."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-490 |Key| |Entry| |hashfn|) 
 ((|constructor| (NIL "This domain provides access to the underlying Lisp hash tables. By varying the hashfn parameter,{} tables suited for different purposes can be obtained."))) 
-((-4519 . T) (-4520 . T)) 
-((|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-1090))) (-12 (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3649) (|devaluate| |#1|)) (LIST (QUOTE |:|) (QUOTE -4083) (|devaluate| |#2|))))) (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#2| (QUOTE (-1090))) (-2198 (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-1090)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090))))) 
+((-4521 . T) (-4522 . T)) 
+((|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-1090))) (-12 (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3651) (|devaluate| |#1|)) (LIST (QUOTE |:|) (QUOTE -4085) (|devaluate| |#2|))))) (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#2| (QUOTE (-1090))) (-2199 (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-1090)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090))))) 
 (-491) 
 ((|constructor| (NIL "Generate a basis for the free Lie algebra on \\spad{n} generators over a ring \\spad{R} with identity up to basic commutators of length \\spad{c} using the algorithm of \\spad{P}. Hall as given in Serre\\spad{'s} book Lie Groups \\spad{--} Lie Algebras")) (|generate| (((|Vector| (|List| (|Integer|))) (|NonNegativeInteger|) (|NonNegativeInteger|)) "\\spad{generate(numberOfGens,{} maximalWeight)} generates a vector of elements of the form [left,{}weight,{}right] which represents a \\spad{P}. Hall basis element for the free lie algebra on \\spad{numberOfGens} generators. We only generate those basis elements of weight less than or equal to maximalWeight")) (|inHallBasis?| (((|Boolean|) (|Integer|) (|Integer|) (|Integer|) (|Integer|)) "\\spad{inHallBasis?(numberOfGens,{} leftCandidate,{} rightCandidate,{} left)} tests to see if a new element should be added to the \\spad{P}. Hall basis being constructed. The list \\spad{[leftCandidate,{}wt,{}rightCandidate]} is included in the basis if in the unique factorization of \\spad{rightCandidate},{} we have left factor leftOfRight,{} and leftOfRight \\spad{<=} \\spad{leftCandidate}")) (|lfunc| (((|Integer|) (|Integer|) (|Integer|)) "\\spad{lfunc(d,{}n)} computes the rank of the \\spad{n}th factor in the lower central series of the free \\spad{d}-generated free Lie algebra; This rank is \\spad{d} if \\spad{n} = 1 and binom(\\spad{d},{}2) if \\spad{n} = 2"))) 
 NIL 
 NIL 
 (-492 |vl| R) 
 ((|constructor| (NIL "This type supports distributed multivariate polynomials whose variables are from a user specified list of symbols. The coefficient ring may be non commutative,{} but the variables are assumed to commute. The term ordering is total degree ordering refined by reverse lexicographic ordering with respect to the position that the variables appear in the list of variables parameter.")) (|reorder| (($ $ (|List| (|Integer|))) "\\spad{reorder(p,{} perm)} applies the permutation perm to the variables in a polynomial and returns the new correctly ordered polynomial"))) 
-(((-4521 "*") |has| |#2| (-172)) (-4512 |has| |#2| (-558)) (-4517 |has| |#2| (-6 -4517)) (-4514 . T) (-4513 . T) (-4516 . T)) 
-((|HasCategory| |#2| (QUOTE (-904))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-172))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-558)))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#2| (QUOTE (-842))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-365))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasAttribute| |#2| (QUOTE -4517)) (|HasCategory| |#2| (QUOTE (-453))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2198 (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2198 (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (|HasCategory| |#2| (QUOTE (-148))))) 
-(-493 -2570 S) 
+(((-4523 "*") |has| |#2| (-172)) (-4514 |has| |#2| (-558)) (-4519 |has| |#2| (-6 -4519)) (-4516 . T) (-4515 . T) (-4518 . T)) 
+((|HasCategory| |#2| (QUOTE (-904))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-172))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-558)))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#2| (QUOTE (-842))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-365))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasAttribute| |#2| (QUOTE -4519)) (|HasCategory| |#2| (QUOTE (-453))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2199 (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2199 (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (|HasCategory| |#2| (QUOTE (-148))))) 
+(-493 -1965 S) 
 ((|constructor| (NIL "This type represents the finite direct or cartesian product of an underlying ordered component type. The vectors are ordered first by the sum of their components,{} and then refined using a reverse lexicographic ordering. This type is a suitable third argument for \\spadtype{GeneralDistributedMultivariatePolynomial}."))) 
-((-4513 |has| |#2| (-1047)) (-4514 |has| |#2| (-1047)) (-4516 |has| |#2| (-6 -4516)) ((-4521 "*") |has| |#2| (-172)) (-4519 . T)) 
-((|HasCategory| |#2| (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047))) (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840))) (-2198 (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840)))) (|HasCategory| |#2| (QUOTE (-716))) (|HasCategory| |#2| (QUOTE (-172))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-365)))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| |#2| (QUOTE (-370))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-225))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1090)))) (|HasAttribute| |#2| (QUOTE -4516)) (|HasCategory| |#2| (QUOTE (-137))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| |#2| (QUOTE (-25))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-25))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-370))) (|HasCategory| |#2| (QUOTE (-716))) (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840))) (|HasCategory| |#2| (QUOTE (-1047))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-25))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2198 (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1090))))) (-2198 (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))))) 
+((-4515 |has| |#2| (-1047)) (-4516 |has| |#2| (-1047)) (-4518 |has| |#2| (-6 -4518)) ((-4523 "*") |has| |#2| (-172)) (-4521 . T)) 
+((|HasCategory| |#2| (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047))) (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840))) (-2199 (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840)))) (|HasCategory| |#2| (QUOTE (-716))) (|HasCategory| |#2| (QUOTE (-172))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-365)))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| |#2| (QUOTE (-370))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-225))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1090)))) (|HasAttribute| |#2| (QUOTE -4518)) (|HasCategory| |#2| (QUOTE (-137))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| |#2| (QUOTE (-25))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-25))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-370))) (|HasCategory| |#2| (QUOTE (-716))) (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840))) (|HasCategory| |#2| (QUOTE (-1047))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-25))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2199 (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1090))))) (-2199 (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))))) 
 (-494 S) 
 ((|constructor| (NIL "Heap implemented in a flexible array to allow for insertions")) (|member?| (((|Boolean|) |#1| $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} member?(3,{}a)")) (|members| (((|List| |#1|) $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} members a")) (|parts| (((|List| |#1|) $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} parts a")) (|#| (((|NonNegativeInteger|) $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} \\#a")) (|count| (((|NonNegativeInteger|) |#1| $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} count(4,{}a)") (((|NonNegativeInteger|) (|Mapping| (|Boolean|) |#1|) $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} count(\\spad{x+}->(\\spad{x>2}),{}a)")) (|any?| (((|Boolean|) (|Mapping| (|Boolean|) |#1|) $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} any?(\\spad{x+}->(\\spad{x=4}),{}a)")) (|every?| (((|Boolean|) (|Mapping| (|Boolean|) |#1|) $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} every?(\\spad{x+}->(\\spad{x=4}),{}a)")) (~= (((|Boolean|) $ $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} b:=copy a \\spad{X} (a~=b)")) (= (((|Boolean|) $ $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} b:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} (a=b)@Boolean")) (|coerce| (((|OutputForm|) $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} coerce a")) (|hash| (((|SingleInteger|) $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} hash a")) (|latex| (((|String|) $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} latex a")) (|map!| (($ (|Mapping| |#1| |#1|) $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} map!(\\spad{x+}-\\spad{>x+10},{}a) \\spad{X} a")) (|size?| (((|Boolean|) $ (|NonNegativeInteger|)) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} size?(a,{}5)")) (|more?| (((|Boolean|) $ (|NonNegativeInteger|)) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} more?(a,{}9)")) (|less?| (((|Boolean|) $ (|NonNegativeInteger|)) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} less?(a,{}9)")) (|sample| (($) "\\blankline \\spad{X} sample()\\$Heap(INT)")) (|merge!| (($ $ $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} b:Heap INT:= heap [6,{}7,{}8,{}9,{}10] \\spad{X} merge!(a,{}\\spad{b}) \\spad{X} a \\spad{X} \\spad{b}")) (|merge| (($ $ $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} b:Heap INT:= heap [6,{}7,{}8,{}9,{}10] \\spad{X} merge(a,{}\\spad{b})")) (|max| ((|#1| $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} max a")) (|map| (($ (|Mapping| |#1| |#1|) $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} map(\\spad{x+}-\\spad{>x+10},{}a) \\spad{X} a")) (|inspect| ((|#1| $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} inspect a")) (|insert!| (($ |#1| $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} insert!(8,{}a) \\spad{X} a")) (|extract!| ((|#1| $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} extract! a \\spad{X} a")) (|eq?| (((|Boolean|) $ $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} b:=copy a \\spad{X} eq?(a,{}\\spad{b})")) (|empty| (($) "\\blankline \\spad{X} b:=empty()\\$(Heap INT)")) (|empty?| (((|Boolean|) $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} empty? a")) (|copy| (($ $) "\\blankline \\spad{X} a:Heap INT:= heap [1,{}2,{}3,{}4,{}5] \\spad{X} copy a")) (|bag| (($ (|List| |#1|)) "\\blankline \\spad{X} bag([1,{}2,{}3,{}4,{}5])\\$Heap(INT)")) (|heap| (($ (|List| |#1|)) "\\indented{1}{heap(\\spad{ls}) creates a heap of elements consisting of the} \\indented{1}{elements of \\spad{ls}.} \\blankline \\spad{E} i:Heap INT \\spad{:=} heap [1,{}6,{}3,{}7,{}5,{}2,{}4]"))) 
-((-4519 . T) (-4520 . T)) 
+((-4521 . T) (-4522 . T)) 
 ((|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090))))) 
 (-495 -1478 UP UPUP R) 
 ((|constructor| (NIL "This domains implements finite rational divisors on an hyperelliptic curve,{} that is finite formal sums SUM(\\spad{n} * \\spad{P}) where the \\spad{n}\\spad{'s} are integers and the \\spad{P}\\spad{'s} are finite rational points on the curve. The equation of the curve must be \\spad{y^2} = \\spad{f}(\\spad{x}) and \\spad{f} must have odd degree."))) 
@@ -1918,12 +1918,12 @@ NIL
 NIL 
 (-497) 
 ((|constructor| (NIL "This domain allows rational numbers to be presented as repeating hexadecimal expansions.")) (|hex| (($ (|Fraction| (|Integer|))) "\\spad{hex(r)} converts a rational number to a hexadecimal expansion.")) (|fractionPart| (((|Fraction| (|Integer|)) $) "\\spad{fractionPart(h)} returns the fractional part of a hexadecimal expansion.")) (|coerce| (((|RadixExpansion| 16) $) "\\spad{coerce(h)} converts a hexadecimal expansion to a radix expansion with base 16.") (((|Fraction| (|Integer|)) $) "\\spad{coerce(h)} converts a hexadecimal expansion to a rational number."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| (-568) (QUOTE (-904))) (|HasCategory| (-568) (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| (-568) (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-150))) (|HasCategory| (-568) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-568) (QUOTE (-1021))) (|HasCategory| (-568) (QUOTE (-815))) (|HasCategory| (-568) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| (-568) (QUOTE (-1136))) (|HasCategory| (-568) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| (-568) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| (-568) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| (-568) (QUOTE (-225))) (|HasCategory| (-568) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-568) (LIST (QUOTE -523) (QUOTE (-1161)) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -303) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -281) (QUOTE (-568)) (QUOTE (-568)))) (|HasCategory| (-568) (QUOTE (-301))) (|HasCategory| (-568) (QUOTE (-550))) (|HasCategory| (-568) (QUOTE (-842))) (-2198 (|HasCategory| (-568) (QUOTE (-815))) (|HasCategory| (-568) (QUOTE (-842)))) (|HasCategory| (-568) (LIST (QUOTE -630) (QUOTE (-568)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-904)))) (|HasCategory| (-568) (QUOTE (-148))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| (-568) (QUOTE (-904))) (|HasCategory| (-568) (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| (-568) (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-150))) (|HasCategory| (-568) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-568) (QUOTE (-1021))) (|HasCategory| (-568) (QUOTE (-815))) (|HasCategory| (-568) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| (-568) (QUOTE (-1136))) (|HasCategory| (-568) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| (-568) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| (-568) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| (-568) (QUOTE (-225))) (|HasCategory| (-568) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-568) (LIST (QUOTE -523) (QUOTE (-1161)) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -303) (QUOTE (-568)))) (|HasCategory| (-568) (LIST (QUOTE -281) (QUOTE (-568)) (QUOTE (-568)))) (|HasCategory| (-568) (QUOTE (-301))) (|HasCategory| (-568) (QUOTE (-550))) (|HasCategory| (-568) (QUOTE (-842))) (-2199 (|HasCategory| (-568) (QUOTE (-815))) (|HasCategory| (-568) (QUOTE (-842)))) (|HasCategory| (-568) (LIST (QUOTE -630) (QUOTE (-568)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-904)))) (|HasCategory| (-568) (QUOTE (-148))))) 
 (-498 A S) 
 ((|constructor| (NIL "A homogeneous aggregate is an aggregate of elements all of the same type. In the current system,{} all aggregates are homogeneous. Two attributes characterize classes of aggregates. Aggregates from domains with attribute \\spadatt{finiteAggregate} have a finite number of members. Those with attribute \\spadatt{shallowlyMutable} allow an element to be modified or updated without changing its overall value.")) (|member?| (((|Boolean|) |#2| $) "\\spad{member?(x,{}u)} tests if \\spad{x} is a member of \\spad{u}. For collections,{} \\axiom{member?(\\spad{x},{}\\spad{u}) = reduce(or,{}[x=y for \\spad{y} in \\spad{u}],{}\\spad{false})}.")) (|members| (((|List| |#2|) $) "\\spad{members(u)} returns a list of the consecutive elements of \\spad{u}. For collections,{} \\axiom{parts([\\spad{x},{}\\spad{y},{}...,{}\\spad{z}]) = (\\spad{x},{}\\spad{y},{}...,{}\\spad{z})}.")) (|parts| (((|List| |#2|) $) "\\spad{parts(u)} returns a list of the consecutive elements of \\spad{u}. For collections,{} \\axiom{parts([\\spad{x},{}\\spad{y},{}...,{}\\spad{z}]) = (\\spad{x},{}\\spad{y},{}...,{}\\spad{z})}.")) (|count| (((|NonNegativeInteger|) |#2| $) "\\spad{count(x,{}u)} returns the number of occurrences of \\spad{x} in \\spad{u}. For collections,{} \\axiom{count(\\spad{x},{}\\spad{u}) = reduce(+,{}[x=y for \\spad{y} in \\spad{u}],{}0)}.") (((|NonNegativeInteger|) (|Mapping| (|Boolean|) |#2|) $) "\\spad{count(p,{}u)} returns the number of elements \\spad{x} in \\spad{u} such that \\axiom{\\spad{p}(\\spad{x})} is \\spad{true}. For collections,{} \\axiom{count(\\spad{p},{}\\spad{u}) = reduce(+,{}[1 for \\spad{x} in \\spad{u} | \\spad{p}(\\spad{x})],{}0)}.")) (|every?| (((|Boolean|) (|Mapping| (|Boolean|) |#2|) $) "\\spad{every?(f,{}u)} tests if \\spad{p}(\\spad{x}) is \\spad{true} for all elements \\spad{x} of \\spad{u}. Note that for collections,{} \\axiom{every?(\\spad{p},{}\\spad{u}) = reduce(and,{}map(\\spad{f},{}\\spad{u}),{}\\spad{true},{}\\spad{false})}.")) (|any?| (((|Boolean|) (|Mapping| (|Boolean|) |#2|) $) "\\spad{any?(p,{}u)} tests if \\axiom{\\spad{p}(\\spad{x})} is \\spad{true} for any element \\spad{x} of \\spad{u}. Note that for collections,{} \\axiom{any?(\\spad{p},{}\\spad{u}) = reduce(or,{}map(\\spad{f},{}\\spad{u}),{}\\spad{false},{}\\spad{true})}.")) (|map!| (($ (|Mapping| |#2| |#2|) $) "\\spad{map!(f,{}u)} destructively replaces each element \\spad{x} of \\spad{u} by \\axiom{\\spad{f}(\\spad{x})}.")) (|map| (($ (|Mapping| |#2| |#2|) $) "\\spad{map(f,{}u)} returns a copy of \\spad{u} with each element \\spad{x} replaced by \\spad{f}(\\spad{x}). For collections,{} \\axiom{map(\\spad{f},{}\\spad{u}) = [\\spad{f}(\\spad{x}) for \\spad{x} in \\spad{u}]}."))) 
 NIL 
-((|HasAttribute| |#1| (QUOTE -4519)) (|HasAttribute| |#1| (QUOTE -4520)) (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))) 
+((|HasAttribute| |#1| (QUOTE -4521)) (|HasAttribute| |#1| (QUOTE -4522)) (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))) 
 (-499 S) 
 ((|constructor| (NIL "A homogeneous aggregate is an aggregate of elements all of the same type. In the current system,{} all aggregates are homogeneous. Two attributes characterize classes of aggregates. Aggregates from domains with attribute \\spadatt{finiteAggregate} have a finite number of members. Those with attribute \\spadatt{shallowlyMutable} allow an element to be modified or updated without changing its overall value.")) (|member?| (((|Boolean|) |#1| $) "\\spad{member?(x,{}u)} tests if \\spad{x} is a member of \\spad{u}. For collections,{} \\axiom{member?(\\spad{x},{}\\spad{u}) = reduce(or,{}[x=y for \\spad{y} in \\spad{u}],{}\\spad{false})}.")) (|members| (((|List| |#1|) $) "\\spad{members(u)} returns a list of the consecutive elements of \\spad{u}. For collections,{} \\axiom{parts([\\spad{x},{}\\spad{y},{}...,{}\\spad{z}]) = (\\spad{x},{}\\spad{y},{}...,{}\\spad{z})}.")) (|parts| (((|List| |#1|) $) "\\spad{parts(u)} returns a list of the consecutive elements of \\spad{u}. For collections,{} \\axiom{parts([\\spad{x},{}\\spad{y},{}...,{}\\spad{z}]) = (\\spad{x},{}\\spad{y},{}...,{}\\spad{z})}.")) (|count| (((|NonNegativeInteger|) |#1| $) "\\spad{count(x,{}u)} returns the number of occurrences of \\spad{x} in \\spad{u}. For collections,{} \\axiom{count(\\spad{x},{}\\spad{u}) = reduce(+,{}[x=y for \\spad{y} in \\spad{u}],{}0)}.") (((|NonNegativeInteger|) (|Mapping| (|Boolean|) |#1|) $) "\\spad{count(p,{}u)} returns the number of elements \\spad{x} in \\spad{u} such that \\axiom{\\spad{p}(\\spad{x})} is \\spad{true}. For collections,{} \\axiom{count(\\spad{p},{}\\spad{u}) = reduce(+,{}[1 for \\spad{x} in \\spad{u} | \\spad{p}(\\spad{x})],{}0)}.")) (|every?| (((|Boolean|) (|Mapping| (|Boolean|) |#1|) $) "\\spad{every?(f,{}u)} tests if \\spad{p}(\\spad{x}) is \\spad{true} for all elements \\spad{x} of \\spad{u}. Note that for collections,{} \\axiom{every?(\\spad{p},{}\\spad{u}) = reduce(and,{}map(\\spad{f},{}\\spad{u}),{}\\spad{true},{}\\spad{false})}.")) (|any?| (((|Boolean|) (|Mapping| (|Boolean|) |#1|) $) "\\spad{any?(p,{}u)} tests if \\axiom{\\spad{p}(\\spad{x})} is \\spad{true} for any element \\spad{x} of \\spad{u}. Note that for collections,{} \\axiom{any?(\\spad{p},{}\\spad{u}) = reduce(or,{}map(\\spad{f},{}\\spad{u}),{}\\spad{false},{}\\spad{true})}.")) (|map!| (($ (|Mapping| |#1| |#1|) $) "\\spad{map!(f,{}u)} destructively replaces each element \\spad{x} of \\spad{u} by \\axiom{\\spad{f}(\\spad{x})}.")) (|map| (($ (|Mapping| |#1| |#1|) $) "\\spad{map(f,{}u)} returns a copy of \\spad{u} with each element \\spad{x} replaced by \\spad{f}(\\spad{x}). For collections,{} \\axiom{map(\\spad{f},{}\\spad{u}) = [\\spad{f}(\\spad{x}) for \\spad{x} in \\spad{u}]}."))) 
 ((-3973 . T)) 
@@ -1946,15 +1946,15 @@ NIL
 NIL 
 (-504) 
 ((|constructor| (NIL "Algebraic closure of the rational numbers.")) (|norm| (($ $ (|List| (|Kernel| $))) "\\spad{norm(f,{}l)} computes the norm of the algebraic number \\spad{f} with respect to the extension generated by kernels \\spad{l}") (($ $ (|Kernel| $)) "\\spad{norm(f,{}k)} computes the norm of the algebraic number \\spad{f} with respect to the extension generated by kernel \\spad{k}") (((|SparseUnivariatePolynomial| $) (|SparseUnivariatePolynomial| $) (|List| (|Kernel| $))) "\\spad{norm(p,{}l)} computes the norm of the polynomial \\spad{p} with respect to the extension generated by kernels \\spad{l}") (((|SparseUnivariatePolynomial| $) (|SparseUnivariatePolynomial| $) (|Kernel| $)) "\\spad{norm(p,{}k)} computes the norm of the polynomial \\spad{p} with respect to the extension generated by kernel \\spad{k}")) (|trueEqual| (((|Boolean|) $ $) "\\spad{trueEqual(x,{}y)} tries to determine if the two numbers are equal")) (|reduce| (($ $) "\\spad{reduce(f)} simplifies all the unreduced algebraic numbers present in \\spad{f} by applying their defining relations.")) (|denom| (((|SparseMultivariatePolynomial| (|Integer|) (|Kernel| $)) $) "\\spad{denom(f)} returns the denominator of \\spad{f} viewed as a polynomial in the kernels over \\spad{Z}.")) (|numer| (((|SparseMultivariatePolynomial| (|Integer|) (|Kernel| $)) $) "\\spad{numer(f)} returns the numerator of \\spad{f} viewed as a polynomial in the kernels over \\spad{Z}.")) (|coerce| (($ (|SparseMultivariatePolynomial| (|Integer|) (|Kernel| $))) "\\spad{coerce(p)} returns \\spad{p} viewed as an algebraic number."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 ((|HasCategory| $ (QUOTE (-1047))) (|HasCategory| $ (LIST (QUOTE -1037) (QUOTE (-568))))) 
 (-505 S |mn|) 
 ((|constructor| (NIL "This is the basic one dimensional array data type."))) 
-((-4520 . T) (-4519 . T)) 
-((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (-2198 (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
+((-4522 . T) (-4521 . T)) 
+((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (-2199 (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
 (-506 R |mnRow| |mnCol|) 
 ((|constructor| (NIL "This domain implements two dimensional arrays"))) 
-((-4519 . T) (-4520 . T)) 
+((-4521 . T) (-4522 . T)) 
 ((|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090))))) 
 (-507 K R UP) 
 ((|constructor| (NIL "This package has no description")) (|chineseRemainder| (((|Record| (|:| |basis| (|Matrix| |#2|)) (|:| |basisDen| |#2|) (|:| |basisInv| (|Matrix| |#2|))) (|List| |#3|) (|List| (|Record| (|:| |basis| (|Matrix| |#2|)) (|:| |basisDen| |#2|) (|:| |basisInv| (|Matrix| |#2|)))) (|NonNegativeInteger|)) "\\spad{chineseRemainder(lu,{}lr,{}n)} \\undocumented")) (|listConjugateBases| (((|List| (|Record| (|:| |basis| (|Matrix| |#2|)) (|:| |basisDen| |#2|) (|:| |basisInv| (|Matrix| |#2|)))) (|Record| (|:| |basis| (|Matrix| |#2|)) (|:| |basisDen| |#2|) (|:| |basisInv| (|Matrix| |#2|))) (|NonNegativeInteger|) (|NonNegativeInteger|)) "\\spad{listConjugateBases(bas,{}q,{}n)} returns the list \\spad{[bas,{}bas^Frob,{}bas^(Frob^2),{}...bas^(Frob^(n-1))]},{} where \\spad{Frob} raises the coefficients of all polynomials appearing in the basis \\spad{bas} to the \\spad{q}th power.")) (|factorList| (((|List| (|SparseUnivariatePolynomial| |#1|)) |#1| (|NonNegativeInteger|) (|NonNegativeInteger|) (|NonNegativeInteger|)) "\\spad{factorList(k,{}n,{}m,{}j)} \\undocumented"))) 
@@ -1966,7 +1966,7 @@ NIL
 NIL 
 (-509 |mn|) 
 ((|constructor| (NIL "\\spadtype{IndexedBits} is a domain to compactly represent large quantities of Boolean data.")) (|And| (($ $ $) "\\spad{And(n,{}m)} returns the bit-by-bit logical And of \\spad{n} and \\spad{m}.")) (|Or| (($ $ $) "\\spad{Or(n,{}m)} returns the bit-by-bit logical Or of \\spad{n} and \\spad{m}.")) (|Not| (($ $) "\\spad{Not(n)} returns the bit-by-bit logical Not of \\spad{n}."))) 
-((-4520 . T) (-4519 . T)) 
+((-4522 . T) (-4521 . T)) 
 ((|HasCategory| (-121) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-121) (QUOTE (-842))) (|HasCategory| (-568) (QUOTE (-842))) (|HasCategory| (-121) (QUOTE (-1090))) (-12 (|HasCategory| (-121) (LIST (QUOTE -303) (QUOTE (-121)))) (|HasCategory| (-121) (QUOTE (-1090))))) 
 (-510 K R UP L) 
 ((|constructor| (NIL "IntegralBasisPolynomialTools provides functions for mapping functions on the coefficients of univariate and bivariate polynomials.")) (|mapBivariate| (((|SparseUnivariatePolynomial| (|SparseUnivariatePolynomial| |#4|)) (|Mapping| |#4| |#1|) |#3|) "\\spad{mapBivariate(f,{}p(x,{}y))} applies the function \\spad{f} to the coefficients of \\spad{p(x,{}y)}.")) (|mapMatrixIfCan| (((|Union| (|Matrix| |#2|) "failed") (|Mapping| (|Union| |#1| "failed") |#4|) (|Matrix| (|SparseUnivariatePolynomial| |#4|))) "\\spad{mapMatrixIfCan(f,{}mat)} applies the function \\spad{f} to the coefficients of the entries of \\spad{mat} if possible,{} and returns \\spad{\"failed\"} otherwise.")) (|mapUnivariateIfCan| (((|Union| |#2| "failed") (|Mapping| (|Union| |#1| "failed") |#4|) (|SparseUnivariatePolynomial| |#4|)) "\\spad{mapUnivariateIfCan(f,{}p(x))} applies the function \\spad{f} to the coefficients of \\spad{p(x)},{} if possible,{} and returns \\spad{\"failed\"} otherwise.")) (|mapUnivariate| (((|SparseUnivariatePolynomial| |#4|) (|Mapping| |#4| |#1|) |#2|) "\\spad{mapUnivariate(f,{}p(x))} applies the function \\spad{f} to the coefficients of \\spad{p(x)}.") ((|#2| (|Mapping| |#1| |#4|) (|SparseUnivariatePolynomial| |#4|)) "\\spad{mapUnivariate(f,{}p(x))} applies the function \\spad{f} to the coefficients of \\spad{p(x)}."))) 
@@ -2030,32 +2030,32 @@ NIL
 ((|HasCategory| |#2| (QUOTE (-787)))) 
 (-525 S |mn|) 
 ((|constructor| (NIL "A FlexibleArray is the notion of an array intended to allow for growth at the end only. Hence the following efficient operations\\spad{\\br} \\spad{append(x,{}a)} meaning append item \\spad{x} at the end of the array \\spad{a}\\spad{\\br} \\spad{delete(a,{}n)} meaning delete the last item from the array \\spad{a}\\spad{\\br} Flexible arrays support the other operations inherited from \\spadtype{ExtensibleLinearAggregate}. However,{} these are not efficient. Flexible arrays combine the \\spad{O(1)} access time property of arrays with growing and shrinking at the end in \\spad{O(1)} (average) time. This is done by using an ordinary array which may have zero or more empty slots at the end. When the array becomes full it is copied into a new larger (50\\% larger) array. Conversely,{} when the array becomes less than 1/2 full,{} it is copied into a smaller array. Flexible arrays provide for an efficient implementation of many data structures in particular heaps,{} stacks and sets.")) (|shrinkable| (((|Boolean|) (|Boolean|)) "\\indented{1}{shrinkable(\\spad{b}) sets the shrinkable attribute of flexible arrays to \\spad{b}} \\indented{1}{and returns the previous value} \\blankline \\spad{X} T1:=IndexedFlexibleArray(Integer,{}20) \\spad{X} shrinkable(\\spad{false})\\$\\spad{T1}")) (|physicalLength!| (($ $ (|Integer|)) "\\indented{1}{physicalLength!(\\spad{x},{}\\spad{n}) changes the physical length of \\spad{x} to be \\spad{n} and} \\indented{1}{returns the new array.} \\blankline \\spad{X} T1:=IndexedFlexibleArray(Integer,{}20) \\spad{X} t2:=flexibleArray([\\spad{i} for \\spad{i} in 1..10])\\$\\spad{T1} \\spad{X} physicalLength!(\\spad{t2},{}15)")) (|physicalLength| (((|NonNegativeInteger|) $) "\\indented{1}{physicalLength(\\spad{x}) returns the number of elements \\spad{x} can} \\indented{1}{accomodate before growing} \\blankline \\spad{X} T1:=IndexedFlexibleArray(Integer,{}20) \\spad{X} t2:=flexibleArray([\\spad{i} for \\spad{i} in 1..10])\\$\\spad{T1} \\spad{X} physicalLength \\spad{t2}")) (|flexibleArray| (($ (|List| |#1|)) "\\indented{1}{flexibleArray(\\spad{l}) creates a flexible array from the list of elements \\spad{l}} \\blankline \\spad{X} T1:=IndexedFlexibleArray(Integer,{}20) \\spad{X} flexibleArray([\\spad{i} for \\spad{i} in 1..10])\\$\\spad{T1}"))) 
-((-4520 . T) (-4519 . T)) 
-((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (-2198 (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
+((-4522 . T) (-4521 . T)) 
+((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (-2199 (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
 (-526 |p| |n|) 
 ((|constructor| (NIL "InnerFiniteField(\\spad{p},{}\\spad{n}) implements finite fields with \\spad{p**n} elements where \\spad{p} is assumed prime but does not check. For a version which checks that \\spad{p} is prime,{} see \\spadtype{FiniteField}."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| (-581 |#1|) (QUOTE (-150))) (|HasCategory| (-581 |#1|) (QUOTE (-370))) (|HasCategory| (-581 |#1|) (QUOTE (-148))) (-2198 (|HasCategory| (-581 |#1|) (QUOTE (-148))) (|HasCategory| (-581 |#1|) (QUOTE (-370))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| (-581 |#1|) (QUOTE (-150))) (|HasCategory| (-581 |#1|) (QUOTE (-370))) (|HasCategory| (-581 |#1|) (QUOTE (-148))) (-2199 (|HasCategory| (-581 |#1|) (QUOTE (-148))) (|HasCategory| (-581 |#1|) (QUOTE (-370))))) 
 (-527 R |mnRow| |mnCol| |Row| |Col|) 
 ((|constructor| (NIL "There is no description for this domain"))) 
-((-4519 . T) (-4520 . T)) 
+((-4521 . T) (-4522 . T)) 
 ((|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090))))) 
 (-528 S |mn|) 
 ((|constructor| (NIL "\\spadtype{IndexedList} is a basic implementation of the functions in \\spadtype{ListAggregate},{} often using functions in the underlying LISP system. The second parameter to the constructor (\\spad{mn}) is the beginning index of the list. That is,{} if \\spad{l} is a list,{} then \\spad{elt(l,{}mn)} is the first value. This constructor is probably best viewed as the implementation of singly-linked lists that are addressable by index rather than as a mere wrapper for LISP lists."))) 
-((-4520 . T) (-4519 . T)) 
-((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (-2198 (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
+((-4522 . T) (-4521 . T)) 
+((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (-2199 (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
 (-529 R |Row| |Col| M) 
 ((|constructor| (NIL "\\spadtype{InnerMatrixLinearAlgebraFunctions} is an internal package which provides standard linear algebra functions on domains in \\spad{MatrixCategory}")) (|inverse| (((|Union| |#4| "failed") |#4|) "\\spad{inverse(m)} returns the inverse of the matrix \\spad{m}. If the matrix is not invertible,{} \"failed\" is returned. Error: if the matrix is not square.")) (|generalizedInverse| ((|#4| |#4|) "\\spad{generalizedInverse(m)} returns the generalized (Moore--Penrose) inverse of the matrix \\spad{m},{} \\spadignore{i.e.} the matrix \\spad{h} such that m*h*m=h,{} h*m*h=m,{} \\spad{m*h} and \\spad{h*m} are both symmetric matrices.")) (|determinant| ((|#1| |#4|) "\\spad{determinant(m)} returns the determinant of the matrix \\spad{m}. an error message is returned if the matrix is not square.")) (|nullSpace| (((|List| |#3|) |#4|) "\\spad{nullSpace(m)} returns a basis for the null space of the matrix \\spad{m}.")) (|nullity| (((|NonNegativeInteger|) |#4|) "\\spad{nullity(m)} returns the mullity of the matrix \\spad{m}. This is the dimension of the null space of the matrix \\spad{m}.")) (|rank| (((|NonNegativeInteger|) |#4|) "\\spad{rank(m)} returns the rank of the matrix \\spad{m}.")) (|rowEchelon| ((|#4| |#4|) "\\spad{rowEchelon(m)} returns the row echelon form of the matrix \\spad{m}."))) 
 NIL 
-((|HasAttribute| |#3| (QUOTE -4520))) 
+((|HasAttribute| |#3| (QUOTE -4522))) 
 (-530 R |Row| |Col| M QF |Row2| |Col2| M2) 
 ((|constructor| (NIL "\\spadtype{InnerMatrixQuotientFieldFunctions} provides functions on matrices over an integral domain which involve the quotient field of that integral domain. The functions rowEchelon and inverse return matrices with entries in the quotient field.")) (|nullSpace| (((|List| |#3|) |#4|) "\\spad{nullSpace(m)} returns a basis for the null space of the matrix \\spad{m}.")) (|inverse| (((|Union| |#8| "failed") |#4|) "\\spad{inverse(m)} returns the inverse of the matrix \\spad{m}. If the matrix is not invertible,{} \"failed\" is returned. Error: if the matrix is not square. Note that the result will have entries in the quotient field.")) (|rowEchelon| ((|#8| |#4|) "\\spad{rowEchelon(m)} returns the row echelon form of the matrix \\spad{m}. the result will have entries in the quotient field."))) 
 NIL 
-((|HasAttribute| |#7| (QUOTE -4520))) 
+((|HasAttribute| |#7| (QUOTE -4522))) 
 (-531 R |mnRow| |mnCol|) 
 ((|constructor| (NIL "An \\spad{IndexedMatrix} is a matrix where the minimal row and column indices are parameters of the type. The domains Row and Col are both IndexedVectors. The index of the 'first' row may be obtained by calling the function \\spadfun{minRowIndex}. The index of the 'first' column may be obtained by calling the function \\spadfun{minColIndex}. The index of the first element of a 'Row' is the same as the index of the first column in a matrix and vice versa."))) 
-((-4519 . T) (-4520 . T)) 
-((|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-558))) (|HasAttribute| |#1| (QUOTE (-4521 "*"))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365)))) 
+((-4521 . T) (-4522 . T)) 
+((|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-558))) (|HasAttribute| |#1| (QUOTE (-4523 "*"))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365)))) 
 (-532 GF) 
 ((|constructor| (NIL "InnerNormalBasisFieldFunctions(\\spad{GF}) (unexposed): This package has functions used by every normal basis finite field extension domain.")) (|minimalPolynomial| (((|SparseUnivariatePolynomial| |#1|) (|Vector| |#1|)) "\\spad{minimalPolynomial(x)} \\undocumented{} See \\axiomFunFrom{minimalPolynomial}{FiniteAlgebraicExtensionField}")) (|normalElement| (((|Vector| |#1|) (|PositiveInteger|)) "\\spad{normalElement(n)} \\undocumented{} See \\axiomFunFrom{normalElement}{FiniteAlgebraicExtensionField}")) (|basis| (((|Vector| (|Vector| |#1|)) (|PositiveInteger|)) "\\spad{basis(n)} \\undocumented{} See \\axiomFunFrom{basis}{FiniteAlgebraicExtensionField}")) (|normal?| (((|Boolean|) (|Vector| |#1|)) "\\spad{normal?(x)} \\undocumented{} See \\axiomFunFrom{normal?}{FiniteAlgebraicExtensionField}")) (|lookup| (((|PositiveInteger|) (|Vector| |#1|)) "\\spad{lookup(x)} \\undocumented{} See \\axiomFunFrom{lookup}{Finite}")) (|inv| (((|Vector| |#1|) (|Vector| |#1|)) "\\spad{inv x} \\undocumented{} See \\axiomFunFrom{inv}{DivisionRing}")) (|trace| (((|Vector| |#1|) (|Vector| |#1|) (|PositiveInteger|)) "\\spad{trace(x,{}n)} \\undocumented{} See \\axiomFunFrom{trace}{FiniteAlgebraicExtensionField}")) (|norm| (((|Vector| |#1|) (|Vector| |#1|) (|PositiveInteger|)) "\\spad{norm(x,{}n)} \\undocumented{} See \\axiomFunFrom{norm}{FiniteAlgebraicExtensionField}")) (/ (((|Vector| |#1|) (|Vector| |#1|) (|Vector| |#1|)) "\\spad{x/y} \\undocumented{} See \\axiomFunFrom{/}{Field}")) (* (((|Vector| |#1|) (|Vector| |#1|) (|Vector| |#1|)) "\\spad{x*y} \\undocumented{} See \\axiomFunFrom{*}{SemiGroup}")) (** (((|Vector| |#1|) (|Vector| |#1|) (|Integer|)) "\\spad{x**n} \\undocumented{} See \\axiomFunFrom{\\spad{**}}{DivisionRing}")) (|qPot| (((|Vector| |#1|) (|Vector| |#1|) (|Integer|)) "\\spad{qPot(v,{}e)} computes \\spad{v**(q**e)},{} interpreting \\spad{v} as an element of normal basis field,{} \\spad{q} the size of the ground field. This is done by a cyclic \\spad{e}-shift of the vector \\spad{v}.")) (|expPot| (((|Vector| |#1|) (|Vector| |#1|) (|SingleInteger|) (|SingleInteger|)) "\\spad{expPot(v,{}e,{}d)} returns the sum from \\spad{i = 0} to \\spad{e - 1} of \\spad{v**(q**i*d)},{} interpreting \\spad{v} as an element of a normal basis field and where \\spad{q} is the size of the ground field. Note that for a description of the algorithm,{} see \\spad{T}.Itoh and \\spad{S}.Tsujii,{} \"A fast algorithm for computing multiplicative inverses in \\spad{GF}(2^m) using normal bases\",{} Information and Computation 78,{} \\spad{pp}.171-177,{} 1988.")) (|repSq| (((|Vector| |#1|) (|Vector| |#1|) (|NonNegativeInteger|)) "\\spad{repSq(v,{}e)} computes \\spad{v**e} by repeated squaring,{} interpreting \\spad{v} as an element of a normal basis field.")) (|dAndcExp| (((|Vector| |#1|) (|Vector| |#1|) (|NonNegativeInteger|) (|SingleInteger|)) "\\spad{dAndcExp(v,{}n,{}k)} computes \\spad{v**e} interpreting \\spad{v} as an element of normal basis field. A divide and conquer algorithm similar to the one from \\spad{D}.\\spad{R}.Stinson,{} \"Some observations on parallel Algorithms for fast exponentiation in \\spad{GF}(2^n)\",{} Siam \\spad{J}. Computation,{} Vol.19,{} No.4,{} \\spad{pp}.711-717,{} August 1990 is used. Argument \\spad{k} is a parameter of this algorithm.")) (|xn| (((|SparseUnivariatePolynomial| |#1|) (|NonNegativeInteger|)) "\\spad{xn(n)} returns the polynomial \\spad{x**n-1}.")) (|pol| (((|SparseUnivariatePolynomial| |#1|) (|Vector| |#1|)) "\\spad{pol(v)} turns the vector \\spad{[v0,{}...,{}vn]} into the polynomial \\spad{v0+v1*x+ ... + vn*x**n}.")) (|index| (((|Vector| |#1|) (|PositiveInteger|) (|PositiveInteger|)) "\\spad{index(n,{}m)} is a index function for vectors of length \\spad{n} over the ground field.")) (|random| (((|Vector| |#1|) (|PositiveInteger|)) "\\spad{random(n)} creates a vector over the ground field with random entries.")) (|setFieldInfo| (((|Void|) (|Vector| (|List| (|Record| (|:| |value| |#1|) (|:| |index| (|SingleInteger|))))) |#1|) "\\spad{setFieldInfo(m,{}p)} initializes the field arithmetic,{} where \\spad{m} is the multiplication table and \\spad{p} is the respective normal element of the ground field \\spad{GF}."))) 
 NIL 
@@ -2130,12 +2130,12 @@ NIL
 NIL 
 (-550) 
 ((|constructor| (NIL "An \\spad{IntegerNumberSystem} is a model for the integers.")) (|invmod| (($ $ $) "\\spad{invmod(a,{}b)},{} \\spad{0<=a<b>1},{} \\spad{(a,{}b)=1} means \\spad{1/a mod b}.")) (|powmod| (($ $ $ $) "\\spad{powmod(a,{}b,{}p)},{} \\spad{0<=a,{}b<p>1},{} means \\spad{a**b mod p}.")) (|mulmod| (($ $ $ $) "\\spad{mulmod(a,{}b,{}p)},{} \\spad{0<=a,{}b<p>1},{} means \\spad{a*b mod p}.")) (|submod| (($ $ $ $) "\\spad{submod(a,{}b,{}p)},{} \\spad{0<=a,{}b<p>1},{} means \\spad{a-b mod p}.")) (|addmod| (($ $ $ $) "\\spad{addmod(a,{}b,{}p)},{} \\spad{0<=a,{}b<p>1},{} means \\spad{a+b mod p}.")) (|mask| (($ $) "\\spad{mask(n)} returns \\spad{2**n-1} (an \\spad{n} bit mask).")) (|dec| (($ $) "\\spad{dec(x)} returns \\spad{x - 1}.")) (|inc| (($ $) "\\spad{inc(x)} returns \\spad{x + 1}.")) (|copy| (($ $) "\\spad{copy(n)} gives a copy of \\spad{n}.")) (|hash| (($ $) "\\spad{hash(n)} returns the hash code of \\spad{n}.")) (|random| (($ $) "\\spad{random(a)} creates a random element from 0 to \\spad{n-1}.") (($) "\\spad{random()} creates a random element.")) (|rationalIfCan| (((|Union| (|Fraction| (|Integer|)) "failed") $) "\\spad{rationalIfCan(n)} creates a rational number,{} or returns \"failed\" if this is not possible.")) (|rational| (((|Fraction| (|Integer|)) $) "\\spad{rational(n)} creates a rational number (see \\spadtype{Fraction Integer})..")) (|rational?| (((|Boolean|) $) "\\spad{rational?(n)} tests if \\spad{n} is a rational number (see \\spadtype{Fraction Integer}).")) (|symmetricRemainder| (($ $ $) "\\spad{symmetricRemainder(a,{}b)} (where \\spad{b > 1}) yields \\spad{r} where \\spad{ -b/2 <= r < b/2 }.")) (|positiveRemainder| (($ $ $) "\\spad{positiveRemainder(a,{}b)} (where \\spad{b > 1}) yields \\spad{r} where \\spad{0 <= r < b} and \\spad{r == a rem b}.")) (|bit?| (((|Boolean|) $ $) "\\spad{bit?(n,{}i)} returns \\spad{true} if and only if \\spad{i}-th bit of \\spad{n} is a 1.")) (|shift| (($ $ $) "\\spad{shift(a,{}i)} shift \\spad{a} by \\spad{i} digits.")) (|length| (($ $) "\\spad{length(a)} length of \\spad{a} in digits.")) (|base| (($) "\\spad{base()} returns the base for the operations of \\spad{IntegerNumberSystem}.")) (|multiplicativeValuation| ((|attribute|) "euclideanSize(a*b) returns \\spad{euclideanSize(a)*euclideanSize(b)}.")) (|even?| (((|Boolean|) $) "\\spad{even?(n)} returns \\spad{true} if and only if \\spad{n} is even.")) (|odd?| (((|Boolean|) $) "\\spad{odd?(n)} returns \\spad{true} if and only if \\spad{n} is odd."))) 
-((-4517 . T) (-4518 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4519 . T) (-4520 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-551 |Key| |Entry| |addDom|) 
 ((|constructor| (NIL "This domain is used to provide a conditional \"add\" domain for the implementation of \\spadtype{Table}."))) 
-((-4519 . T) (-4520 . T)) 
-((|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-1090))) (-12 (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3649) (|devaluate| |#1|)) (LIST (QUOTE |:|) (QUOTE -4083) (|devaluate| |#2|))))) (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#2| (QUOTE (-1090))) (-2198 (|HasCategory| (-2 (|:| -3649 |#1|) (|:| -4083 |#2|)) (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-1090)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090))))) 
+((-4521 . T) (-4522 . T)) 
+((|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-1090))) (-12 (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3651) (|devaluate| |#1|)) (LIST (QUOTE |:|) (QUOTE -4085) (|devaluate| |#2|))))) (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#2| (QUOTE (-1090))) (-2199 (|HasCategory| (-2 (|:| -3651 |#1|) (|:| -4085 |#2|)) (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-1090)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090))))) 
 (-552 R -1478) 
 ((|constructor| (NIL "This package provides functions for the integration of algebraic integrands over transcendental functions.")) (|algint| (((|IntegrationResult| |#2|) |#2| (|Kernel| |#2|) (|Kernel| |#2|) (|Mapping| (|SparseUnivariatePolynomial| |#2|) (|SparseUnivariatePolynomial| |#2|))) "\\spad{algint(f,{} x,{} y,{} d)} returns the integral of \\spad{f(x,{}y)dx} where \\spad{y} is an algebraic function of \\spad{x}; \\spad{d} is the derivation to use on \\spad{k[x]}."))) 
 NIL 
@@ -2150,7 +2150,7 @@ NIL
 NIL 
 (-555 R) 
 ((|constructor| (NIL "This category implements of interval arithmetic and transcendental functions over intervals.")) (|contains?| (((|Boolean|) $ |#1|) "\\spad{contains?(i,{}f)} returns \\spad{true} if \\axiom{\\spad{f}} is contained within the interval \\axiom{\\spad{i}},{} \\spad{false} otherwise.")) (|negative?| (((|Boolean|) $) "\\spad{negative?(u)} returns \\axiom{\\spad{true}} if every element of \\spad{u} is negative,{} \\axiom{\\spad{false}} otherwise.")) (|positive?| (((|Boolean|) $) "\\spad{positive?(u)} returns \\axiom{\\spad{true}} if every element of \\spad{u} is positive,{} \\axiom{\\spad{false}} otherwise.")) (|width| ((|#1| $) "\\spad{width(u)} returns \\axiom{sup(\\spad{u}) - inf(\\spad{u})}.")) (|sup| ((|#1| $) "\\spad{sup(u)} returns the supremum of \\axiom{\\spad{u}}.")) (|inf| ((|#1| $) "\\spad{inf(u)} returns the infinum of \\axiom{\\spad{u}}.")) (|qinterval| (($ |#1| |#1|) "\\spad{qinterval(inf,{}sup)} creates a new interval \\axiom{[\\spad{inf},{}\\spad{sup}]},{} without checking the ordering on the elements.")) (|interval| (($ (|Fraction| (|Integer|))) "\\spad{interval(f)} creates a new interval around \\spad{f}.") (($ |#1|) "\\spad{interval(f)} creates a new interval around \\spad{f}.") (($ |#1| |#1|) "\\spad{interval(inf,{}sup)} creates a new interval,{} either \\axiom{[\\spad{inf},{}\\spad{sup}]} if \\axiom{\\spad{inf} \\spad{<=} \\spad{sup}} or \\axiom{[\\spad{sup},{}in]} otherwise."))) 
-((-3996 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-3999 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-556 K |symb| |PolyRing| E |ProjPt| PCS |Plc| DIVISOR |InfClsPoint| |DesTree| BLMET) 
 ((|constructor| (NIL "The following is part of the PAFF package")) (|placesOfDegree| (((|Void|) (|PositiveInteger|) |#3| (|List| |#5|)) "\\spad{placesOfDegree(d,{} f,{} pts)} compute the places of degree dividing \\spad{d} of the curve \\spad{f}. \\spad{pts} should be the singular points of the curve \\spad{f}. For \\spad{d} > 1 this only works if \\spad{K} has \\axiomType{PseudoAlgebraicClosureOfFiniteFieldCategory}.")) (|intersectionDivisor| ((|#8| |#3| |#3| (|List| |#10|) (|List| |#5|)) "\\spad{intersectionDivisor(f,{}pol,{}listOfTree)} returns the intersection divisor of \\spad{f} with a curve defined by \\spad{pol}. \\spad{listOfTree} must contain all the desingularisation trees of all singular points on the curve \\indented{1}{defined by \\spad{pol}.}"))) 
@@ -2162,7 +2162,7 @@ NIL
 NIL 
 (-558) 
 ((|constructor| (NIL "The category of commutative integral domains,{} \\spadignore{i.e.} commutative rings with no zero divisors. \\blankline Conditional attributes\\spad{\\br} canonicalUnitNormal\\tab{5}the canonical field is the same for all associates\\spad{\\br} canonicalsClosed\\tab{5}the product of two canonicals is itself canonical")) (|unit?| (((|Boolean|) $) "\\spad{unit?(x)} tests whether \\spad{x} is a unit,{} \\spadignore{i.e.} is invertible.")) (|associates?| (((|Boolean|) $ $) "\\spad{associates?(x,{}y)} tests whether \\spad{x} and \\spad{y} are associates,{} \\spadignore{i.e.} differ by a unit factor.")) (|unitCanonical| (($ $) "\\spad{unitCanonical(x)} returns \\spad{unitNormal(x).canonical}.")) (|unitNormal| (((|Record| (|:| |unit| $) (|:| |canonical| $) (|:| |associate| $)) $) "\\spad{unitNormal(x)} tries to choose a canonical element from the associate class of \\spad{x}. The attribute canonicalUnitNormal,{} if asserted,{} means that the \"canonical\" element is the same across all associates of \\spad{x} if \\spad{unitNormal(x) = [u,{}c,{}a]} then \\spad{u*c = x},{} \\spad{a*u = 1}.")) (|exquo| (((|Union| $ "failed") $ $) "\\spad{exquo(a,{}b)} either returns an element \\spad{c} such that \\spad{c*b=a} or \"failed\" if no such element can be found."))) 
-((-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-559 R -1478) 
 ((|constructor| (NIL "This package provides functions for integration,{} limited integration,{} extended integration and the risch differential equation for elementary functions.")) (|lfextlimint| (((|Union| (|Record| (|:| |ratpart| |#2|) (|:| |coeff| |#2|)) "failed") |#2| (|Symbol|) (|Kernel| |#2|) (|List| (|Kernel| |#2|))) "\\spad{lfextlimint(f,{}x,{}k,{}[k1,{}...,{}kn])} returns functions \\spad{[h,{} c]} such that \\spad{dh/dx = f - c dk/dx}. Value \\spad{h} is looked for in a field containing \\spad{f} and \\spad{k1},{}...,{}\\spad{kn} (the \\spad{ki}\\spad{'s} must be logs).")) (|lfintegrate| (((|IntegrationResult| |#2|) |#2| (|Symbol|)) "\\spad{lfintegrate(f,{} x)} = \\spad{g} such that \\spad{dg/dx = f}.")) (|lfinfieldint| (((|Union| |#2| "failed") |#2| (|Symbol|)) "\\spad{lfinfieldint(f,{} x)} returns a function \\spad{g} such that \\spad{dg/dx = f} if \\spad{g} exists,{} \"failed\" otherwise.")) (|lflimitedint| (((|Union| (|Record| (|:| |mainpart| |#2|) (|:| |limitedlogs| (|List| (|Record| (|:| |coeff| |#2|) (|:| |logand| |#2|))))) "failed") |#2| (|Symbol|) (|List| |#2|)) "\\spad{lflimitedint(f,{}x,{}[g1,{}...,{}gn])} returns functions \\spad{[h,{}[[\\spad{ci},{} \\spad{gi}]]]} such that the \\spad{gi}\\spad{'s} are among \\spad{[g1,{}...,{}gn]},{} and \\spad{d(h+sum(\\spad{ci} log(\\spad{gi})))/dx = f},{} if possible,{} \"failed\" otherwise.")) (|lfextendedint| (((|Union| (|Record| (|:| |ratpart| |#2|) (|:| |coeff| |#2|)) "failed") |#2| (|Symbol|) |#2|) "\\spad{lfextendedint(f,{} x,{} g)} returns functions \\spad{[h,{} c]} such that \\spad{dh/dx = f - cg},{} if (\\spad{h},{} \\spad{c}) exist,{} \"failed\" otherwise."))) 
@@ -2202,7 +2202,7 @@ NIL
 NIL 
 (-568) 
 ((|constructor| (NIL "\\spadtype{Integer} provides the domain of arbitrary precision integers.")) (|infinite| ((|attribute|) "nextItem never returns \"failed\".")) (|noetherian| ((|attribute|) "ascending chain condition on ideals.")) (|canonicalsClosed| ((|attribute|) "two positives multiply to give positive.")) (|canonical| ((|attribute|) "mathematical equality is data structure equality.")) (|random| (($ $) "\\spad{random(n)} returns a random integer from 0 to \\spad{n-1}."))) 
-((-4501 . T) (-4507 . T) (-4511 . T) (-4506 . T) (-4517 . T) (-4518 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4503 . T) (-4509 . T) (-4513 . T) (-4508 . T) (-4519 . T) (-4520 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-569) 
 ((|constructor| (NIL "\\axiomType{AnnaNumericalIntegrationPackage} is a \\axiom{package} of functions for the \\axiom{category} \\axiomType{NumericalIntegrationCategory} with \\axiom{measure},{} and \\axiom{integrate}.")) (|measure| (((|Record| (|:| |measure| (|Float|)) (|:| |name| (|String|)) (|:| |explanations| (|List| (|String|))) (|:| |extra| (|Result|))) (|NumericalIntegrationProblem|) (|RoutinesTable|)) "\\spad{measure(prob,{}R)} is a top level ANNA function for identifying the most appropriate numerical routine from those in the routines table provided for solving the numerical integration problem defined by \\axiom{\\spad{prob}}. \\blankline It calls each \\axiom{domain} listed in \\axiom{\\spad{R}} of \\axiom{category} \\axiomType{NumericalIntegrationCategory} in turn to calculate all measures and returns the best \\spadignore{i.e.} the name of the most appropriate domain and any other relevant information.") (((|Record| (|:| |measure| (|Float|)) (|:| |name| (|String|)) (|:| |explanations| (|List| (|String|))) (|:| |extra| (|Result|))) (|NumericalIntegrationProblem|)) "\\spad{measure(prob)} is a top level ANNA function for identifying the most appropriate numerical routine for solving the numerical integration problem defined by \\axiom{\\spad{prob}}. \\blankline It calls each \\axiom{domain} of \\axiom{category} \\axiomType{NumericalIntegrationCategory} in turn to calculate all measures and returns the best \\spadignore{i.e.} the name of the most appropriate domain and any other relevant information.")) (|integrate| (((|Union| (|Result|) "failed") (|Expression| (|Float|)) (|SegmentBinding| (|OrderedCompletion| (|Float|))) (|Symbol|)) "\\spad{integrate(exp,{} x = a..b,{} numerical)} is a top level ANNA function to integrate an expression,{} {\\spad{\\tt} \\spad{exp}},{} over a given range,{} {\\spad{\\tt} a} to {\\spad{\\tt} \\spad{b}}. \\blankline It iterates over the \\axiom{domains} of \\axiomType{NumericalIntegrationCategory} to get the name and other relevant information of the the (domain of the) numerical routine likely to be the most appropriate,{} \\spadignore{i.e.} have the best \\axiom{measure}. \\blankline It then performs the integration of the given expression on that \\axiom{domain}. \\blankline Default values for the absolute and relative error are used. \\blankline It is an error if the last argument is not {\\spad{\\tt} numerical}.") (((|Union| (|Result|) "failed") (|Expression| (|Float|)) (|SegmentBinding| (|OrderedCompletion| (|Float|))) (|String|)) "\\spad{integrate(exp,{} x = a..b,{} \"numerical\")} is a top level ANNA function to integrate an expression,{} {\\spad{\\tt} \\spad{exp}},{} over a given range,{} {\\spad{\\tt} a} to {\\spad{\\tt} \\spad{b}}. \\blankline It iterates over the \\axiom{domains} of \\axiomType{NumericalIntegrationCategory} to get the name and other relevant information of the the (domain of the) numerical routine likely to be the most appropriate,{} \\spadignore{i.e.} have the best \\axiom{measure}. \\blankline It then performs the integration of the given expression on that \\axiom{domain}. \\blankline Default values for the absolute and relative error are used. \\blankline It is an error of the last argument is not {\\spad{\\tt} \"numerical\"}.") (((|Result|) (|Expression| (|Float|)) (|List| (|Segment| (|OrderedCompletion| (|Float|)))) (|Float|) (|Float|) (|RoutinesTable|)) "\\spad{integrate(exp,{} [a..b,{}c..d,{}...],{} epsabs,{} epsrel,{} routines)} is a top level ANNA function to integrate a multivariate expression,{} {\\spad{\\tt} \\spad{exp}},{} over a given set of ranges to the required absolute and relative accuracy,{} using the routines available in the RoutinesTable provided. \\blankline It iterates over the \\axiom{domains} of \\axiomType{NumericalIntegrationCategory} to get the name and other relevant information of the the (domain of the) numerical routine likely to be the most appropriate,{} \\spadignore{i.e.} have the best \\axiom{measure}. \\blankline It then performs the integration of the given expression on that \\axiom{domain}.") (((|Result|) (|Expression| (|Float|)) (|List| (|Segment| (|OrderedCompletion| (|Float|)))) (|Float|) (|Float|)) "\\spad{integrate(exp,{} [a..b,{}c..d,{}...],{} epsabs,{} epsrel)} is a top level ANNA function to integrate a multivariate expression,{} {\\spad{\\tt} \\spad{exp}},{} over a given set of ranges to the required absolute and relative accuracy. \\blankline It iterates over the \\axiom{domains} of \\axiomType{NumericalIntegrationCategory} to get the name and other relevant information of the the (domain of the) numerical routine likely to be the most appropriate,{} \\spadignore{i.e.} have the best \\axiom{measure}. \\blankline It then performs the integration of the given expression on that \\axiom{domain}.") (((|Result|) (|Expression| (|Float|)) (|List| (|Segment| (|OrderedCompletion| (|Float|)))) (|Float|)) "\\spad{integrate(exp,{} [a..b,{}c..d,{}...],{} epsrel)} is a top level ANNA function to integrate a multivariate expression,{} {\\spad{\\tt} \\spad{exp}},{} over a given set of ranges to the required relative accuracy. \\blankline It iterates over the \\axiom{domains} of \\axiomType{NumericalIntegrationCategory} to get the name and other relevant information of the the (domain of the) numerical routine likely to be the most appropriate,{} \\spadignore{i.e.} have the best \\axiom{measure}. \\blankline It then performs the integration of the given expression on that \\axiom{domain}. \\blankline If epsrel = 0,{} a default absolute accuracy is used.") (((|Result|) (|Expression| (|Float|)) (|List| (|Segment| (|OrderedCompletion| (|Float|))))) "\\spad{integrate(exp,{} [a..b,{}c..d,{}...])} is a top level ANNA function to integrate a multivariate expression,{} {\\spad{\\tt} \\spad{exp}},{} over a given set of ranges. \\blankline It iterates over the \\axiom{domains} of \\axiomType{NumericalIntegrationCategory} to get the name and other relevant information of the the (domain of the) numerical routine likely to be the most appropriate,{} \\spadignore{i.e.} have the best \\axiom{measure}. \\blankline It then performs the integration of the given expression on that \\axiom{domain}. \\blankline Default values for the absolute and relative error are used.") (((|Result|) (|Expression| (|Float|)) (|Segment| (|OrderedCompletion| (|Float|)))) "\\spad{integrate(exp,{} a..b)} is a top level ANNA function to integrate an expression,{} {\\spad{\\tt} \\spad{exp}},{} over a given range {\\spad{\\tt} a} to {\\spad{\\tt} \\spad{b}}. \\blankline It iterates over the \\axiom{domains} of \\axiomType{NumericalIntegrationCategory} to get the name and other relevant information of the the (domain of the) numerical routine likely to be the most appropriate,{} \\spadignore{i.e.} have the best \\axiom{measure}. \\blankline It then performs the integration of the given expression on that \\axiom{domain}. \\blankline Default values for the absolute and relative error are used.") (((|Result|) (|Expression| (|Float|)) (|Segment| (|OrderedCompletion| (|Float|))) (|Float|)) "\\spad{integrate(exp,{} a..b,{} epsrel)} is a top level ANNA function to integrate an expression,{} {\\spad{\\tt} \\spad{exp}},{} over a given range {\\spad{\\tt} a} to {\\spad{\\tt} \\spad{b}} to the required relative accuracy. \\blankline It iterates over the \\axiom{domains} of \\axiomType{NumericalIntegrationCategory} to get the name and other relevant information of the the (domain of the) numerical routine likely to be the most appropriate,{} \\spadignore{i.e.} have the best \\axiom{measure}. \\blankline It then performs the integration of the given expression on that \\axiom{domain}. \\blankline If epsrel = 0,{} a default absolute accuracy is used.") (((|Result|) (|Expression| (|Float|)) (|Segment| (|OrderedCompletion| (|Float|))) (|Float|) (|Float|)) "\\spad{integrate(exp,{} a..b,{} epsabs,{} epsrel)} is a top level ANNA function to integrate an expression,{} {\\spad{\\tt} \\spad{exp}},{} over a given range {\\spad{\\tt} a} to {\\spad{\\tt} \\spad{b}} to the required absolute and relative accuracy. \\blankline It iterates over the \\axiom{domains} of \\axiomType{NumericalIntegrationCategory} to get the name and other relevant information of the the (domain of the) numerical routine likely to be the most appropriate,{} \\spadignore{i.e.} have the best \\axiom{measure}. \\blankline It then performs the integration of the given expression on that \\axiom{domain}.") (((|Result|) (|NumericalIntegrationProblem|)) "\\spad{integrate(IntegrationProblem)} is a top level ANNA function to integrate an expression over a given range or ranges to the required absolute and relative accuracy. \\blankline It iterates over the \\axiom{domains} of \\axiomType{NumericalIntegrationCategory} to get the name and other relevant information of the the (domain of the) numerical routine likely to be the most appropriate,{} \\spadignore{i.e.} have the best \\axiom{measure}. \\blankline It then performs the integration of the given expression on that \\axiom{domain}.") (((|Result|) (|Expression| (|Float|)) (|Segment| (|OrderedCompletion| (|Float|))) (|Float|) (|Float|) (|RoutinesTable|)) "\\spad{integrate(exp,{} a..b,{} epsrel,{} routines)} is a top level ANNA function to integrate an expression,{} {\\spad{\\tt} \\spad{exp}},{} over a given range {\\spad{\\tt} a} to {\\spad{\\tt} \\spad{b}} to the required absolute and relative accuracy using the routines available in the RoutinesTable provided. \\blankline It iterates over the \\axiom{domains} of \\axiomType{NumericalIntegrationCategory} to get the name and other relevant information of the the (domain of the) numerical routine likely to be the most appropriate,{} \\spadignore{i.e.} have the best \\axiom{measure}. \\blankline It then performs the integration of the given expression on that \\axiom{domain}."))) 
@@ -2230,7 +2230,7 @@ NIL
 NIL 
 (-575 R) 
 ((|constructor| (NIL "This domain is an implementation of interval arithmetic and transcendental functions over intervals."))) 
-((-3996 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-3999 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-576) 
 ((|constructor| (NIL "This package provides the implementation for the \\spadfun{solveLinearPolynomialEquation} operation over the integers. It uses a lifting technique from the package GenExEuclid")) (|solveLinearPolynomialEquation| (((|Union| (|List| (|SparseUnivariatePolynomial| (|Integer|))) "failed") (|List| (|SparseUnivariatePolynomial| (|Integer|))) (|SparseUnivariatePolynomial| (|Integer|))) "\\spad{solveLinearPolynomialEquation([f1,{} ...,{} fn],{} g)} (where the \\spad{fi} are relatively prime to each other) returns a list of \\spad{ai} such that \\spad{g/prod \\spad{fi} = sum ai/fi} or returns \"failed\" if no such list of \\spad{ai}\\spad{'s} exists."))) 
@@ -2250,11 +2250,11 @@ NIL
 NIL 
 (-580 |p| |unBalanced?|) 
 ((|constructor| (NIL "This domain implements \\spad{Zp},{} the \\spad{p}-adic completion of the integers. This is an internal domain."))) 
-((-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-581 |p|) 
 ((|constructor| (NIL "InnerPrimeField(\\spad{p}) implements the field with \\spad{p} elements."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 ((|HasCategory| $ (QUOTE (-150))) (|HasCategory| $ (QUOTE (-148))) (|HasCategory| $ (QUOTE (-370)))) 
 (-582) 
 ((|constructor| (NIL "A package to print strings without line-feed nor carriage-return.")) (|iprint| (((|Void|) (|String|)) "\\axiom{iprint(\\spad{s})} prints \\axiom{\\spad{s}} at the current position of the cursor."))) 
@@ -2270,7 +2270,7 @@ NIL
 NIL 
 (-585 -1478) 
 ((|constructor| (NIL "The result of a transcendental integration. If a function \\spad{f} has an elementary integral \\spad{g},{} then \\spad{g} can be written in the form \\spad{g = h + c1 log(u1) + c2 log(u2) + ... + cn log(un)} where \\spad{h},{} which is in the same field than \\spad{f},{} is called the rational part of the integral,{} and \\spad{c1 log(u1) + ... cn log(un)} is called the logarithmic part of the integral. This domain manipulates integrals represented in that form,{} by keeping both parts separately. The logs are not explicitly computed.")) (|differentiate| ((|#1| $ (|Symbol|)) "\\spad{differentiate(ir,{}x)} differentiates \\spad{ir} with respect to \\spad{x}") ((|#1| $ (|Mapping| |#1| |#1|)) "\\spad{differentiate(ir,{}D)} differentiates \\spad{ir} with respect to the derivation \\spad{D}.")) (|integral| (($ |#1| (|Symbol|)) "\\spad{integral(f,{}x)} returns the formal integral of \\spad{f} with respect to \\spad{x}") (($ |#1| |#1|) "\\spad{integral(f,{}x)} returns the formal integral of \\spad{f} with respect to \\spad{x}")) (|elem?| (((|Boolean|) $) "\\spad{elem?(ir)} tests if an integration result is elementary over \\spad{F?}")) (|notelem| (((|List| (|Record| (|:| |integrand| |#1|) (|:| |intvar| |#1|))) $) "\\spad{notelem(ir)} returns the non-elementary part of an integration result")) (|logpart| (((|List| (|Record| (|:| |scalar| (|Fraction| (|Integer|))) (|:| |coeff| (|SparseUnivariatePolynomial| |#1|)) (|:| |logand| (|SparseUnivariatePolynomial| |#1|)))) $) "\\spad{logpart(ir)} returns the logarithmic part of an integration result")) (|ratpart| ((|#1| $) "\\spad{ratpart(ir)} returns the rational part of an integration result")) (|mkAnswer| (($ |#1| (|List| (|Record| (|:| |scalar| (|Fraction| (|Integer|))) (|:| |coeff| (|SparseUnivariatePolynomial| |#1|)) (|:| |logand| (|SparseUnivariatePolynomial| |#1|)))) (|List| (|Record| (|:| |integrand| |#1|) (|:| |intvar| |#1|)))) "\\spad{mkAnswer(r,{}l,{}ne)} creates an integration result from a rational part \\spad{r},{} a logarithmic part \\spad{l},{} and a non-elementary part \\spad{ne}."))) 
-((-4514 . T) (-4513 . T)) 
+((-4516 . T) (-4515 . T)) 
 ((|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-1161))))) 
 (-586 I) 
 ((|constructor| (NIL "The \\spadtype{IntegerRoots} package computes square roots and \\spad{n}th roots of integers efficiently.")) (|approxSqrt| ((|#1| |#1|) "\\spad{approxSqrt(n)} returns an approximation \\spad{x} to \\spad{sqrt(n)} such that \\spad{-1 < x - sqrt(n) < 1}. Compute an approximation \\spad{s} to \\spad{sqrt(n)} such that \\indented{10}{\\spad{-1 < s - sqrt(n) < 1}} A variable precision Newton iteration is used. The running time is \\spad{O( log(n)**2 )}.")) (|perfectSqrt| (((|Union| |#1| "failed") |#1|) "\\spad{perfectSqrt(n)} returns the square root of \\spad{n} if \\spad{n} is a perfect square and returns \"failed\" otherwise")) (|perfectSquare?| (((|Boolean|) |#1|) "\\spad{perfectSquare?(n)} returns \\spad{true} if \\spad{n} is a perfect square and \\spad{false} otherwise")) (|approxNthRoot| ((|#1| |#1| (|NonNegativeInteger|)) "\\spad{approxRoot(n,{}r)} returns an approximation \\spad{x} to \\spad{n**(1/r)} such that \\spad{-1 < x - n**(1/r) < 1}")) (|perfectNthRoot| (((|Record| (|:| |base| |#1|) (|:| |exponent| (|NonNegativeInteger|))) |#1|) "\\spad{perfectNthRoot(n)} returns \\spad{[x,{}r]},{} where \\spad{n = x\\^r} and \\spad{r} is the largest integer such that \\spad{n} is a perfect \\spad{r}th power") (((|Union| |#1| "failed") |#1| (|NonNegativeInteger|)) "\\spad{perfectNthRoot(n,{}r)} returns the \\spad{r}th root of \\spad{n} if \\spad{n} is an \\spad{r}th power and returns \"failed\" otherwise")) (|perfectNthPower?| (((|Boolean|) |#1| (|NonNegativeInteger|)) "\\spad{perfectNthPower?(n,{}r)} returns \\spad{true} if \\spad{n} is an \\spad{r}th power and \\spad{false} otherwise"))) 
@@ -2294,19 +2294,19 @@ NIL
 NIL 
 (-591 |mn|) 
 ((|constructor| (NIL "This domain implements low-level strings")) (|hash| (((|Integer|) $) "\\spad{hash(x)} provides a hashing function for strings"))) 
-((-4520 . T) (-4519 . T)) 
-((|HasCategory| (-147) (QUOTE (-1090))) (|HasCategory| (-147) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-147) (QUOTE (-842))) (-2198 (|HasCategory| (-147) (QUOTE (-842))) (|HasCategory| (-147) (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| (-147) (LIST (QUOTE -303) (QUOTE (-147)))) (|HasCategory| (-147) (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| (-147) (LIST (QUOTE -303) (QUOTE (-147)))) (|HasCategory| (-147) (QUOTE (-842)))) (-12 (|HasCategory| (-147) (LIST (QUOTE -303) (QUOTE (-147)))) (|HasCategory| (-147) (QUOTE (-1090)))))) 
+((-4522 . T) (-4521 . T)) 
+((|HasCategory| (-147) (QUOTE (-1090))) (|HasCategory| (-147) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-147) (QUOTE (-842))) (-2199 (|HasCategory| (-147) (QUOTE (-842))) (|HasCategory| (-147) (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| (-147) (LIST (QUOTE -303) (QUOTE (-147)))) (|HasCategory| (-147) (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| (-147) (LIST (QUOTE -303) (QUOTE (-147)))) (|HasCategory| (-147) (QUOTE (-842)))) (-12 (|HasCategory| (-147) (LIST (QUOTE -303) (QUOTE (-147)))) (|HasCategory| (-147) (QUOTE (-1090)))))) 
 (-592 E V R P) 
 ((|constructor| (NIL "Tools for the summation packages of polynomials")) (|sum| (((|Record| (|:| |num| |#4|) (|:| |den| (|Integer|))) |#4| |#2|) "\\spad{sum(p(n),{} n)} returns \\spad{P(n)},{} the indefinite sum of \\spad{p(n)} with respect to upward difference on \\spad{n},{} \\spadignore{i.e.} \\spad{P(n+1) - P(n) = a(n)}.") (((|Record| (|:| |num| |#4|) (|:| |den| (|Integer|))) |#4| |#2| (|Segment| |#4|)) "\\spad{sum(p(n),{} n = a..b)} returns \\spad{p(a) + p(a+1) + ... + p(b)}."))) 
 NIL 
 NIL 
 (-593 |Coef|) 
 ((|constructor| (NIL "InnerSparseUnivariatePowerSeries is an internal domain used for creating sparse Taylor and Laurent series.")) (|cAcsch| (($ $) "\\spad{cAcsch(f)} computes the inverse hyperbolic cosecant of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cAsech| (($ $) "\\spad{cAsech(f)} computes the inverse hyperbolic secant of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cAcoth| (($ $) "\\spad{cAcoth(f)} computes the inverse hyperbolic cotangent of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cAtanh| (($ $) "\\spad{cAtanh(f)} computes the inverse hyperbolic tangent of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cAcosh| (($ $) "\\spad{cAcosh(f)} computes the inverse hyperbolic cosine of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cAsinh| (($ $) "\\spad{cAsinh(f)} computes the inverse hyperbolic sine of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cCsch| (($ $) "\\spad{cCsch(f)} computes the hyperbolic cosecant of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cSech| (($ $) "\\spad{cSech(f)} computes the hyperbolic secant of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cCoth| (($ $) "\\spad{cCoth(f)} computes the hyperbolic cotangent of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cTanh| (($ $) "\\spad{cTanh(f)} computes the hyperbolic tangent of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cCosh| (($ $) "\\spad{cCosh(f)} computes the hyperbolic cosine of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cSinh| (($ $) "\\spad{cSinh(f)} computes the hyperbolic sine of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cAcsc| (($ $) "\\spad{cAcsc(f)} computes the arccosecant of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cAsec| (($ $) "\\spad{cAsec(f)} computes the arcsecant of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cAcot| (($ $) "\\spad{cAcot(f)} computes the arccotangent of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cAtan| (($ $) "\\spad{cAtan(f)} computes the arctangent of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cAcos| (($ $) "\\spad{cAcos(f)} computes the arccosine of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cAsin| (($ $) "\\spad{cAsin(f)} computes the arcsine of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cCsc| (($ $) "\\spad{cCsc(f)} computes the cosecant of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cSec| (($ $) "\\spad{cSec(f)} computes the secant of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cCot| (($ $) "\\spad{cCot(f)} computes the cotangent of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cTan| (($ $) "\\spad{cTan(f)} computes the tangent of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cCos| (($ $) "\\spad{cCos(f)} computes the cosine of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cSin| (($ $) "\\spad{cSin(f)} computes the sine of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cLog| (($ $) "\\spad{cLog(f)} computes the logarithm of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cExp| (($ $) "\\spad{cExp(f)} computes the exponential of the power series \\spad{f}. For use when the coefficient ring is commutative.")) (|cRationalPower| (($ $ (|Fraction| (|Integer|))) "\\spad{cRationalPower(f,{}r)} computes \\spad{f^r}. For use when the coefficient ring is commutative.")) (|cPower| (($ $ |#1|) "\\spad{cPower(f,{}r)} computes \\spad{f^r},{} where \\spad{f} has constant coefficient 1. For use when the coefficient ring is commutative.")) (|integrate| (($ $) "\\spad{integrate(f(x))} returns an anti-derivative of the power series \\spad{f(x)} with constant coefficient 0. Warning: function does not check for a term of degree \\spad{-1}.")) (|seriesToOutputForm| (((|OutputForm|) (|Stream| (|Record| (|:| |k| (|Integer|)) (|:| |c| |#1|))) (|Reference| (|OrderedCompletion| (|Integer|))) (|Symbol|) |#1| (|Fraction| (|Integer|))) "\\spad{seriesToOutputForm(st,{}refer,{}var,{}cen,{}r)} prints the series \\spad{f((var - cen)^r)}.")) (|iCompose| (($ $ $) "\\spad{iCompose(f,{}g)} returns \\spad{f(g(x))}. This is an internal function which should only be called for Taylor series \\spad{f(x)} and \\spad{g(x)} such that the constant coefficient of \\spad{g(x)} is zero.")) (|taylorQuoByVar| (($ $) "\\spad{taylorQuoByVar(a0 + a1 x + a2 x**2 + ...)} returns \\spad{a1 + a2 x + a3 x**2 + ...}")) (|iExquo| (((|Union| $ "failed") $ $ (|Boolean|)) "\\spad{iExquo(f,{}g,{}taylor?)} is the quotient of the power series \\spad{f} and \\spad{g}. If \\spad{taylor?} is \\spad{true},{} then we must have \\spad{order(f) >= order(g)}.")) (|multiplyCoefficients| (($ (|Mapping| |#1| (|Integer|)) $) "\\spad{multiplyCoefficients(fn,{}f)} returns the series \\spad{sum(fn(n) * an * x^n,{}n = n0..)},{} where \\spad{f} is the series \\spad{sum(an * x^n,{}n = n0..)}.")) (|monomial?| (((|Boolean|) $) "\\spad{monomial?(f)} tests if \\spad{f} is a single monomial.")) (|series| (($ (|Stream| (|Record| (|:| |k| (|Integer|)) (|:| |c| |#1|)))) "\\spad{series(st)} creates a series from a stream of non-zero terms,{} where a term is an exponent-coefficient pair. The terms in the stream should be ordered by increasing order of exponents.")) (|getStream| (((|Stream| (|Record| (|:| |k| (|Integer|)) (|:| |c| |#1|))) $) "\\spad{getStream(f)} returns the stream of terms representing the series \\spad{f}.")) (|getRef| (((|Reference| (|OrderedCompletion| (|Integer|))) $) "\\spad{getRef(f)} returns a reference containing the order to which the terms of \\spad{f} have been computed.")) (|makeSeries| (($ (|Reference| (|OrderedCompletion| (|Integer|))) (|Stream| (|Record| (|:| |k| (|Integer|)) (|:| |c| |#1|)))) "\\spad{makeSeries(refer,{}str)} creates a power series from the reference \\spad{refer} and the stream \\spad{str}."))) 
-(((-4521 "*") |has| |#1| (-172)) (-4512 |has| |#1| (-558)) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (-2198 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558)))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasSignature| |#1| (LIST (QUOTE *) (LIST (|devaluate| |#1|) (QUOTE (-568)) (|devaluate| |#1|)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasSignature| |#1| (LIST (QUOTE *) (LIST (|devaluate| |#1|) (QUOTE (-568)) (|devaluate| |#1|))))) (|HasCategory| (-568) (QUOTE (-1102))) (|HasCategory| |#1| (QUOTE (-365))) (|HasSignature| |#1| (LIST (QUOTE **) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (QUOTE (-568))))) (-12 (|HasSignature| |#1| (LIST (QUOTE **) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (QUOTE (-568))))) (|HasSignature| |#1| (LIST (QUOTE -2745) (LIST (|devaluate| |#1|) (QUOTE (-1161))))))) 
+(((-4523 "*") |has| |#1| (-172)) (-4514 |has| |#1| (-558)) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (-2199 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558)))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasSignature| |#1| (LIST (QUOTE *) (LIST (|devaluate| |#1|) (QUOTE (-568)) (|devaluate| |#1|)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasSignature| |#1| (LIST (QUOTE *) (LIST (|devaluate| |#1|) (QUOTE (-568)) (|devaluate| |#1|))))) (|HasCategory| (-568) (QUOTE (-1102))) (|HasCategory| |#1| (QUOTE (-365))) (|HasSignature| |#1| (LIST (QUOTE **) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (QUOTE (-568))))) (-12 (|HasSignature| |#1| (LIST (QUOTE **) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (QUOTE (-568))))) (|HasSignature| |#1| (LIST (QUOTE -2747) (LIST (|devaluate| |#1|) (QUOTE (-1161))))))) 
 (-594 |Coef|) 
 ((|constructor| (NIL "Internal package for dense Taylor series. This is an internal Taylor series type in which Taylor series are represented by a \\spadtype{Stream} of \\spadtype{Ring} elements. For univariate series,{} the \\spad{Stream} elements are the Taylor coefficients. For multivariate series,{} the \\spad{n}th Stream element is a form of degree \\spad{n} in the power series variables.")) (* (($ $ (|Integer|)) "\\spad{x*i} returns the product of integer \\spad{i} and the series \\spad{x}.") (($ $ |#1|) "\\spad{x*c} returns the product of \\spad{c} and the series \\spad{x}.") (($ |#1| $) "\\spad{c*x} returns the product of \\spad{c} and the series \\spad{x}.")) (|order| (((|NonNegativeInteger|) $ (|NonNegativeInteger|)) "\\spad{order(x,{}n)} returns the minimum of \\spad{n} and the order of \\spad{x}.") (((|NonNegativeInteger|) $) "\\spad{order(x)} returns the order of a power series \\spad{x},{} \\indented{1}{\\spadignore{i.e.} the degree of the first non-zero term of the series.}")) (|pole?| (((|Boolean|) $) "\\spad{pole?(x)} tests if the series \\spad{x} has a pole. \\indented{1}{Note: this is \\spad{false} when \\spad{x} is a Taylor series.}")) (|series| (($ (|Stream| |#1|)) "\\spad{series(s)} creates a power series from a stream of \\indented{1}{ring elements.} \\indented{1}{For univariate series types,{} the stream \\spad{s} should be a stream} \\indented{1}{of Taylor coefficients. For multivariate series types,{} the} \\indented{1}{stream \\spad{s} should be a stream of forms the \\spad{n}th element} \\indented{1}{of which is a} \\indented{1}{form of degree \\spad{n} in the power series variables.}")) (|coefficients| (((|Stream| |#1|) $) "\\spad{coefficients(x)} returns a stream of ring elements. \\indented{1}{When \\spad{x} is a univariate series,{} this is a stream of Taylor} \\indented{1}{coefficients. When \\spad{x} is a multivariate series,{} the} \\indented{1}{\\spad{n}th element of the stream is a form of} \\indented{1}{degree \\spad{n} in the power series variables.}"))) 
-((-4514 |has| |#1| (-558)) (-4513 |has| |#1| (-558)) ((-4521 "*") |has| |#1| (-558)) (-4512 |has| |#1| (-558)) (-4516 . T)) 
+((-4516 |has| |#1| (-558)) (-4515 |has| |#1| (-558)) ((-4523 "*") |has| |#1| (-558)) (-4514 |has| |#1| (-558)) (-4518 . T)) 
 ((|HasCategory| |#1| (QUOTE (-558)))) 
 (-595 A B) 
 ((|constructor| (NIL "Functions defined on streams with entries in two sets.")) (|map| (((|InfiniteTuple| |#2|) (|Mapping| |#2| |#1|) (|InfiniteTuple| |#1|)) "\\spad{map(f,{}[x0,{}x1,{}x2,{}...])} returns \\spad{[f(x0),{}f(x1),{}f(x2),{}..]}."))) 
@@ -2326,31 +2326,31 @@ NIL
 NIL 
 (-599 R |mn|) 
 ((|constructor| (NIL "This type represents vector like objects with varying lengths and a user-specified initial index."))) 
-((-4520 . T) (-4519 . T)) 
-((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (-2198 (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-25))) (|HasCategory| |#1| (QUOTE (-23))) (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-716))) (|HasCategory| |#1| (QUOTE (-1047))) (-12 (|HasCategory| |#1| (QUOTE (-1002))) (|HasCategory| |#1| (QUOTE (-1047)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
+((-4522 . T) (-4521 . T)) 
+((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (-2199 (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| (-568) (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-25))) (|HasCategory| |#1| (QUOTE (-23))) (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-716))) (|HasCategory| |#1| (QUOTE (-1047))) (-12 (|HasCategory| |#1| (QUOTE (-1002))) (|HasCategory| |#1| (QUOTE (-1047)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
 (-600 S |Index| |Entry|) 
 ((|constructor| (NIL "An indexed aggregate is a many-to-one mapping of indices to entries. For example,{} a one-dimensional-array is an indexed aggregate where the index is an integer. Also,{} a table is an indexed aggregate where the indices and entries may have any type.")) (|swap!| (((|Void|) $ |#2| |#2|) "\\spad{swap!(u,{}i,{}j)} interchanges elements \\spad{i} and \\spad{j} of aggregate \\spad{u}. No meaningful value is returned.")) (|fill!| (($ $ |#3|) "\\spad{fill!(u,{}x)} replaces each entry in aggregate \\spad{u} by \\spad{x}. The modified \\spad{u} is returned as value.")) (|first| ((|#3| $) "\\spad{first(u)} returns the first element \\spad{x} of \\spad{u}. Note that for collections,{} \\axiom{first([\\spad{x},{}\\spad{y},{}...,{}\\spad{z}]) = \\spad{x}}. Error: if \\spad{u} is empty.")) (|minIndex| ((|#2| $) "\\spad{minIndex(u)} returns the minimum index \\spad{i} of aggregate \\spad{u}. Note that in general,{} \\axiom{minIndex(a) = reduce(min,{}[\\spad{i} for \\spad{i} in indices a])}; for lists,{} \\axiom{minIndex(a) = 1}.")) (|maxIndex| ((|#2| $) "\\spad{maxIndex(u)} returns the maximum index \\spad{i} of aggregate \\spad{u}. Note that in general,{} \\axiom{maxIndex(\\spad{u}) = reduce(max,{}[\\spad{i} for \\spad{i} in indices \\spad{u}])}; if \\spad{u} is a list,{} \\axiom{maxIndex(\\spad{u}) = \\#u}.")) (|entry?| (((|Boolean|) |#3| $) "\\spad{entry?(x,{}u)} tests if \\spad{x} equals \\axiom{\\spad{u} . \\spad{i}} for some index \\spad{i}.")) (|indices| (((|List| |#2|) $) "\\spad{indices(u)} returns a list of indices of aggregate \\spad{u} in no particular order. to become indices:")) (|index?| (((|Boolean|) |#2| $) "\\spad{index?(i,{}u)} tests if \\spad{i} is an index of aggregate \\spad{u}.")) (|entries| (((|List| |#3|) $) "\\spad{entries(u)} returns a list of all the entries of aggregate \\spad{u} in no assumed order."))) 
 NIL 
-((|HasAttribute| |#1| (QUOTE -4520)) (|HasCategory| |#2| (QUOTE (-842))) (|HasAttribute| |#1| (QUOTE -4519)) (|HasCategory| |#3| (QUOTE (-1090)))) 
+((|HasAttribute| |#1| (QUOTE -4522)) (|HasCategory| |#2| (QUOTE (-842))) (|HasAttribute| |#1| (QUOTE -4521)) (|HasCategory| |#3| (QUOTE (-1090)))) 
 (-601 |Index| |Entry|) 
 ((|constructor| (NIL "An indexed aggregate is a many-to-one mapping of indices to entries. For example,{} a one-dimensional-array is an indexed aggregate where the index is an integer. Also,{} a table is an indexed aggregate where the indices and entries may have any type.")) (|swap!| (((|Void|) $ |#1| |#1|) "\\spad{swap!(u,{}i,{}j)} interchanges elements \\spad{i} and \\spad{j} of aggregate \\spad{u}. No meaningful value is returned.")) (|fill!| (($ $ |#2|) "\\spad{fill!(u,{}x)} replaces each entry in aggregate \\spad{u} by \\spad{x}. The modified \\spad{u} is returned as value.")) (|first| ((|#2| $) "\\spad{first(u)} returns the first element \\spad{x} of \\spad{u}. Note that for collections,{} \\axiom{first([\\spad{x},{}\\spad{y},{}...,{}\\spad{z}]) = \\spad{x}}. Error: if \\spad{u} is empty.")) (|minIndex| ((|#1| $) "\\spad{minIndex(u)} returns the minimum index \\spad{i} of aggregate \\spad{u}. Note that in general,{} \\axiom{minIndex(a) = reduce(min,{}[\\spad{i} for \\spad{i} in indices a])}; for lists,{} \\axiom{minIndex(a) = 1}.")) (|maxIndex| ((|#1| $) "\\spad{maxIndex(u)} returns the maximum index \\spad{i} of aggregate \\spad{u}. Note that in general,{} \\axiom{maxIndex(\\spad{u}) = reduce(max,{}[\\spad{i} for \\spad{i} in indices \\spad{u}])}; if \\spad{u} is a list,{} \\axiom{maxIndex(\\spad{u}) = \\#u}.")) (|entry?| (((|Boolean|) |#2| $) "\\spad{entry?(x,{}u)} tests if \\spad{x} equals \\axiom{\\spad{u} . \\spad{i}} for some index \\spad{i}.")) (|indices| (((|List| |#1|) $) "\\spad{indices(u)} returns a list of indices of aggregate \\spad{u} in no particular order. to become indices:")) (|index?| (((|Boolean|) |#1| $) "\\spad{index?(i,{}u)} tests if \\spad{i} is an index of aggregate \\spad{u}.")) (|entries| (((|List| |#2|) $) "\\spad{entries(u)} returns a list of all the entries of aggregate \\spad{u} in no assumed order."))) 
 ((-3973 . T)) 
 NIL 
 (-602 R A) 
 ((|constructor| (NIL "AssociatedJordanAlgebra takes an algebra \\spad{A} and uses \\spadfun{*\\$A} to define the new multiplications \\spad{a*b := (a *\\$A b + b *\\$A a)/2} (anticommutator). The usual notation \\spad{{a,{}b}_+} cannot be used due to restrictions in the current language. This domain only gives a Jordan algebra if the Jordan-identity \\spad{(a*b)*c + (b*c)*a + (c*a)*b = 0} holds for all \\spad{a},{}\\spad{b},{}\\spad{c} in \\spad{A}. This relation can be checked by \\spadfun{jordanAdmissible?()\\$A}. \\blankline If the underlying algebra is of type \\spadtype{FramedNonAssociativeAlgebra(R)} (\\spadignore{i.e.} a non associative algebra over \\spad{R} which is a free \\spad{R}-module of finite rank,{} together with a fixed \\spad{R}-module basis),{} then the same is \\spad{true} for the associated Jordan algebra. Moreover,{} if the underlying algebra is of type \\spadtype{FiniteRankNonAssociativeAlgebra(R)} (\\spadignore{i.e.} a non associative algebra over \\spad{R} which is a free \\spad{R}-module of finite rank),{} then the same \\spad{true} for the associated Jordan algebra.")) (|coerce| (($ |#2|) "\\spad{coerce(a)} coerces the element \\spad{a} of the algebra \\spad{A} to an element of the Jordan algebra \\spadtype{AssociatedJordanAlgebra}(\\spad{R},{}A)."))) 
-((-4516 -2198 (-2139 (|has| |#2| (-369 |#1|)) (|has| |#1| (-558))) (-12 (|has| |#2| (-419 |#1|)) (|has| |#1| (-558)))) (-4514 . T) (-4513 . T)) 
-((|HasCategory| |#2| (LIST (QUOTE -419) (|devaluate| |#1|))) (-12 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#2| (LIST (QUOTE -419) (|devaluate| |#1|)))) (|HasCategory| |#2| (LIST (QUOTE -369) (|devaluate| |#1|))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -369) (|devaluate| |#1|))) (|HasCategory| |#2| (LIST (QUOTE -419) (|devaluate| |#1|)))) (-2198 (-12 (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#2| (LIST (QUOTE -369) (|devaluate| |#1|)))) (-12 (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#2| (LIST (QUOTE -419) (|devaluate| |#1|)))))) 
+((-4518 -2199 (-2141 (|has| |#2| (-369 |#1|)) (|has| |#1| (-558))) (-12 (|has| |#2| (-419 |#1|)) (|has| |#1| (-558)))) (-4516 . T) (-4515 . T)) 
+((|HasCategory| |#2| (LIST (QUOTE -419) (|devaluate| |#1|))) (-12 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#2| (LIST (QUOTE -419) (|devaluate| |#1|)))) (|HasCategory| |#2| (LIST (QUOTE -369) (|devaluate| |#1|))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -369) (|devaluate| |#1|))) (|HasCategory| |#2| (LIST (QUOTE -419) (|devaluate| |#1|)))) (-2199 (-12 (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#2| (LIST (QUOTE -369) (|devaluate| |#1|)))) (-12 (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#2| (LIST (QUOTE -419) (|devaluate| |#1|)))))) 
 (-603 |Entry|) 
 ((|constructor| (NIL "This domain allows a random access file to be viewed both as a table and as a file object. The KeyedAccessFile format is a directory containing a single file called ``index.kaf\\spad{''}. This file is a random access file. The first thing in the file is an integer which is the byte offset of an association list (the dictionary) at the end of the file. The association list is of the form ((key . byteoffset) (key . byteoffset)...) where the byte offset is the number of bytes from the beginning of the file. This offset contains an \\spad{s}-expression for the value of the key.")) (|pack!| (($ $) "\\spad{pack!(f)} reorganizes the file \\spad{f} on disk to recover unused space."))) 
-((-4519 . T) (-4520 . T)) 
-((|HasCategory| (-2 (|:| -3649 (-1143)) (|:| -4083 |#1|)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| (-1143) (QUOTE (-842))) (|HasCategory| (-2 (|:| -3649 (-1143)) (|:| -4083 |#1|)) (QUOTE (-1090))) (-12 (|HasCategory| (-2 (|:| -3649 (-1143)) (|:| -4083 |#1|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3649) (QUOTE (-1143))) (LIST (QUOTE |:|) (QUOTE -4083) (|devaluate| |#1|))))) (|HasCategory| (-2 (|:| -3649 (-1143)) (|:| -4083 |#1|)) (QUOTE (-1090))))) 
+((-4521 . T) (-4522 . T)) 
+((|HasCategory| (-2 (|:| -3651 (-1143)) (|:| -4085 |#1|)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| (-1143) (QUOTE (-842))) (|HasCategory| (-2 (|:| -3651 (-1143)) (|:| -4085 |#1|)) (QUOTE (-1090))) (-12 (|HasCategory| (-2 (|:| -3651 (-1143)) (|:| -4085 |#1|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3651) (QUOTE (-1143))) (LIST (QUOTE |:|) (QUOTE -4085) (|devaluate| |#1|))))) (|HasCategory| (-2 (|:| -3651 (-1143)) (|:| -4085 |#1|)) (QUOTE (-1090))))) 
 (-604 S |Key| |Entry|) 
 ((|constructor| (NIL "A keyed dictionary is a dictionary of key-entry pairs for which there is a unique entry for each key.")) (|search| (((|Union| |#3| "failed") |#2| $) "\\spad{search(k,{}t)} searches the table \\spad{t} for the key \\spad{k},{} returning the entry stored in \\spad{t} for key \\spad{k}. If \\spad{t} has no such key,{} \\axiom{search(\\spad{k},{}\\spad{t})} returns \"failed\".")) (|remove!| (((|Union| |#3| "failed") |#2| $) "\\spad{remove!(k,{}t)} searches the table \\spad{t} for the key \\spad{k} removing (and return) the entry if there. If \\spad{t} has no such key,{} \\axiom{remove!(\\spad{k},{}\\spad{t})} returns \"failed\".")) (|keys| (((|List| |#2|) $) "\\spad{keys(t)} returns the list the keys in table \\spad{t}.")) (|key?| (((|Boolean|) |#2| $) "\\spad{key?(k,{}t)} tests if \\spad{k} is a key in table \\spad{t}."))) 
 NIL 
 NIL 
 (-605 |Key| |Entry|) 
 ((|constructor| (NIL "A keyed dictionary is a dictionary of key-entry pairs for which there is a unique entry for each key.")) (|search| (((|Union| |#2| "failed") |#1| $) "\\spad{search(k,{}t)} searches the table \\spad{t} for the key \\spad{k},{} returning the entry stored in \\spad{t} for key \\spad{k}. If \\spad{t} has no such key,{} \\axiom{search(\\spad{k},{}\\spad{t})} returns \"failed\".")) (|remove!| (((|Union| |#2| "failed") |#1| $) "\\spad{remove!(k,{}t)} searches the table \\spad{t} for the key \\spad{k} removing (and return) the entry if there. If \\spad{t} has no such key,{} \\axiom{remove!(\\spad{k},{}\\spad{t})} returns \"failed\".")) (|keys| (((|List| |#1|) $) "\\spad{keys(t)} returns the list the keys in table \\spad{t}.")) (|key?| (((|Boolean|) |#1| $) "\\spad{key?(k,{}t)} tests if \\spad{k} is a key in table \\spad{t}."))) 
-((-4520 . T) (-3973 . T)) 
+((-4522 . T) (-3973 . T)) 
 NIL 
 (-606 R S) 
 ((|constructor| (NIL "This package exports some auxiliary functions on kernels")) (|constantIfCan| (((|Union| |#1| "failed") (|Kernel| |#2|)) "\\spad{constantIfCan(k)} \\undocumented")) (|constantKernel| (((|Kernel| |#2|) |#1|) "\\spad{constantKernel(r)} \\undocumented"))) 
@@ -2378,11 +2378,11 @@ NIL
 NIL 
 (-612 R) 
 ((|constructor| (NIL "The category of all left algebras over an arbitrary ring.")) (|coerce| (($ |#1|) "\\spad{coerce(r)} returns \\spad{r} * 1 where 1 is the identity of the left algebra."))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-613 A R S) 
 ((|constructor| (NIL "LocalAlgebra produces the localization of an algebra,{} \\spadignore{i.e.} fractions whose numerators come from some \\spad{R} algebra.")) (|denom| ((|#3| $) "\\spad{denom x} returns the denominator of \\spad{x}.")) (|numer| ((|#1| $) "\\spad{numer x} returns the numerator of \\spad{x}.")) (/ (($ |#1| |#3|) "\\spad{a / d} divides the element \\spad{a} by \\spad{d}.") (($ $ |#3|) "\\spad{x / d} divides the element \\spad{x} by \\spad{d}."))) 
-((-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4515 . T) (-4516 . T) (-4518 . T)) 
 ((|HasCategory| |#1| (QUOTE (-840)))) 
 (-614 R -1478) 
 ((|constructor| (NIL "This package computes the forward Laplace Transform.")) (|laplace| ((|#2| |#2| (|Symbol|) (|Symbol|)) "\\spad{laplace(f,{} t,{} s)} returns the Laplace transform of \\spad{f(t)} using \\spad{s} as the new variable. This is \\spad{integral(exp(-s*t)*f(t),{} t = 0..\\%plusInfinity)}. Returns the formal object \\spad{laplace(f,{} t,{} s)} if it cannot compute the transform."))) 
@@ -2390,7 +2390,7 @@ NIL
 NIL 
 (-615 R UP) 
 ((|constructor| (NIL "Univariate polynomials with negative and positive exponents.")) (|separate| (((|Record| (|:| |polyPart| $) (|:| |fracPart| (|Fraction| |#2|))) (|Fraction| |#2|)) "\\spad{separate(x)} is not documented")) (|monomial| (($ |#1| (|Integer|)) "\\spad{monomial(x,{}n)} is not documented")) (|coefficient| ((|#1| $ (|Integer|)) "\\spad{coefficient(x,{}n)} is not documented")) (|trailingCoefficient| ((|#1| $) "trailingCoefficient is not documented")) (|leadingCoefficient| ((|#1| $) "leadingCoefficient is not documented")) (|reductum| (($ $) "\\spad{reductum(x)} is not documented")) (|order| (((|Integer|) $) "\\spad{order(x)} is not documented")) (|degree| (((|Integer|) $) "\\spad{degree(x)} is not documented")) (|monomial?| (((|Boolean|) $) "\\spad{monomial?(x)} is not documented"))) 
-((-4514 . T) (-4513 . T) ((-4521 "*") . T) (-4512 . T) (-4516 . T)) 
+((-4516 . T) (-4515 . T) ((-4523 "*") . T) (-4514 . T) (-4518 . T)) 
 ((|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568))))) 
 (-616 R E V P TS ST) 
 ((|constructor| (NIL "A package for solving polynomial systems by means of Lazard triangular sets. This package provides two operations. One for solving in the sense of the regular zeros,{} and the other for solving in the sense of the Zariski closure. Both produce square-free regular sets. Moreover,{} the decompositions do not contain any redundant component. However,{} only zero-dimensional regular sets are normalized,{} since normalization may be time consumming in positive dimension. The decomposition process is that of [2].")) (|zeroSetSplit| (((|List| |#6|) (|List| |#4|) (|Boolean|)) "\\axiom{zeroSetSplit(\\spad{lp},{}clos?)} has the same specifications as zeroSetSplit(\\spad{lp},{}clos?) from RegularTriangularSetCategory.")) (|normalizeIfCan| ((|#6| |#6|) "\\axiom{normalizeIfCan(\\spad{ts})} returns \\axiom{\\spad{ts}} in an normalized shape if \\axiom{\\spad{ts}} is zero-dimensional."))) 
@@ -2402,18 +2402,18 @@ NIL
 NIL 
 (-618 |VarSet| R |Order|) 
 ((|constructor| (NIL "Management of the Lie Group associated with a free nilpotent Lie algebra. Every Lie bracket with length greater than \\axiom{Order} are assumed to be null. The implementation inherits from the \\spadtype{XPBWPolynomial} domain constructor: Lyndon coordinates are exponential coordinates of the second kind.")) (|identification| (((|List| (|Equation| |#2|)) $ $) "\\axiom{identification(\\spad{g},{}\\spad{h})} returns the list of equations \\axiom{g_i = h_i},{} where \\axiom{g_i} (resp. \\axiom{h_i}) are exponential coordinates of \\axiom{\\spad{g}} (resp. \\axiom{\\spad{h}}).")) (|LyndonCoordinates| (((|List| (|Record| (|:| |k| (|LyndonWord| |#1|)) (|:| |c| |#2|))) $) "\\axiom{LyndonCoordinates(\\spad{g})} returns the exponential coordinates of \\axiom{\\spad{g}}.")) (|LyndonBasis| (((|List| (|LiePolynomial| |#1| |#2|)) (|List| |#1|)) "\\axiom{LyndonBasis(\\spad{lv})} returns the Lyndon basis of the nilpotent free Lie algebra.")) (|varList| (((|List| |#1|) $) "\\axiom{varList(\\spad{g})} returns the list of variables of \\axiom{\\spad{g}}.")) (|mirror| (($ $) "\\axiom{mirror(\\spad{g})} is the mirror of the internal representation of \\axiom{\\spad{g}}.")) (|coerce| (((|XPBWPolynomial| |#1| |#2|) $) "\\axiom{coerce(\\spad{g})} returns the internal representation of \\axiom{\\spad{g}}.") (((|XDistributedPolynomial| |#1| |#2|) $) "\\axiom{coerce(\\spad{g})} returns the internal representation of \\axiom{\\spad{g}}.")) (|listOfTerms| (((|List| (|Record| (|:| |k| (|PoincareBirkhoffWittLyndonBasis| |#1|)) (|:| |c| |#2|))) $) "\\axiom{listOfTerms(\\spad{p})} returns the internal representation of \\axiom{\\spad{p}}.")) (|log| (((|LiePolynomial| |#1| |#2|) $) "\\axiom{log(\\spad{p})} returns the logarithm of \\axiom{\\spad{p}}.")) (|exp| (($ (|LiePolynomial| |#1| |#2|)) "\\axiom{exp(\\spad{p})} returns the exponential of \\axiom{\\spad{p}}."))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-619 R |ls|) 
 ((|constructor| (NIL "A package for solving polynomial systems with finitely many solutions. The decompositions are given by means of regular triangular sets. The computations use lexicographical Groebner bases. The main operations are lexTriangular and squareFreeLexTriangular. The second one provide decompositions by means of square-free regular triangular sets. Both are based on the lexTriangular method described in [1]. They differ from the algorithm described in [2] by the fact that multiciplities of the roots are not kept. With the squareFreeLexTriangular operation all multiciplities are removed. With the other operation some multiciplities may remain. Both operations admit an optional argument to produce normalized triangular sets.")) (|zeroSetSplit| (((|List| (|SquareFreeRegularTriangularSet| |#1| (|IndexedExponents| (|OrderedVariableList| |#2|)) (|OrderedVariableList| |#2|) (|NewSparseMultivariatePolynomial| |#1| (|OrderedVariableList| |#2|)))) (|List| (|NewSparseMultivariatePolynomial| |#1| (|OrderedVariableList| |#2|))) (|Boolean|)) "\\axiom{zeroSetSplit(\\spad{lp},{} norm?)} decomposes the variety associated with \\axiom{\\spad{lp}} into square-free regular chains. Thus a point belongs to this variety iff it is a regular zero of a regular set in in the output. Note that \\axiom{\\spad{lp}} needs to generate a zero-dimensional ideal. If \\axiom{norm?} is \\axiom{\\spad{true}} then the regular sets are normalized.") (((|List| (|RegularChain| |#1| |#2|)) (|List| (|NewSparseMultivariatePolynomial| |#1| (|OrderedVariableList| |#2|))) (|Boolean|)) "\\axiom{zeroSetSplit(\\spad{lp},{} norm?)} decomposes the variety associated with \\axiom{\\spad{lp}} into regular chains. Thus a point belongs to this variety iff it is a regular zero of a regular set in in the output. Note that \\axiom{\\spad{lp}} needs to generate a zero-dimensional ideal. If \\axiom{norm?} is \\axiom{\\spad{true}} then the regular sets are normalized.")) (|squareFreeLexTriangular| (((|List| (|SquareFreeRegularTriangularSet| |#1| (|IndexedExponents| (|OrderedVariableList| |#2|)) (|OrderedVariableList| |#2|) (|NewSparseMultivariatePolynomial| |#1| (|OrderedVariableList| |#2|)))) (|List| (|NewSparseMultivariatePolynomial| |#1| (|OrderedVariableList| |#2|))) (|Boolean|)) "\\axiom{squareFreeLexTriangular(base,{} norm?)} decomposes the variety associated with \\axiom{base} into square-free regular chains. Thus a point belongs to this variety iff it is a regular zero of a regular set in in the output. Note that \\axiom{base} needs to be a lexicographical Groebner basis of a zero-dimensional ideal. If \\axiom{norm?} is \\axiom{\\spad{true}} then the regular sets are normalized.")) (|lexTriangular| (((|List| (|RegularChain| |#1| |#2|)) (|List| (|NewSparseMultivariatePolynomial| |#1| (|OrderedVariableList| |#2|))) (|Boolean|)) "\\axiom{lexTriangular(base,{} norm?)} decomposes the variety associated with \\axiom{base} into regular chains. Thus a point belongs to this variety iff it is a regular zero of a regular set in in the output. Note that \\axiom{base} needs to be a lexicographical Groebner basis of a zero-dimensional ideal. If \\axiom{norm?} is \\axiom{\\spad{true}} then the regular sets are normalized.")) (|groebner| (((|List| (|NewSparseMultivariatePolynomial| |#1| (|OrderedVariableList| |#2|))) (|List| (|NewSparseMultivariatePolynomial| |#1| (|OrderedVariableList| |#2|)))) "\\axiom{groebner(\\spad{lp})} returns the lexicographical Groebner basis of \\axiom{\\spad{lp}}. If \\axiom{\\spad{lp}} generates a zero-dimensional ideal then the FGLM strategy is used,{} otherwise the Sugar strategy is used.")) (|fglmIfCan| (((|Union| (|List| (|NewSparseMultivariatePolynomial| |#1| (|OrderedVariableList| |#2|))) "failed") (|List| (|NewSparseMultivariatePolynomial| |#1| (|OrderedVariableList| |#2|)))) "\\axiom{fglmIfCan(\\spad{lp})} returns the lexicographical Groebner basis of \\axiom{\\spad{lp}} by using the FGLM strategy,{} if \\axiom{zeroDimensional?(\\spad{lp})} holds .")) (|zeroDimensional?| (((|Boolean|) (|List| (|NewSparseMultivariatePolynomial| |#1| (|OrderedVariableList| |#2|)))) "\\axiom{zeroDimensional?(\\spad{lp})} returns \\spad{true} iff \\axiom{\\spad{lp}} generates a zero-dimensional ideal \\spad{w}.\\spad{r}.\\spad{t}. the variables involved in \\axiom{\\spad{lp}}."))) 
 NIL 
 NIL 
 (-620) 
-((|constructor| (NIL "Category for the transcendental Liouvillian functions.")) (|erf| (($ $) "\\spad{erf(x)} returns the error function of \\spad{x},{} \\spadignore{i.e.} \\spad{2 / sqrt(\\%\\spad{pi})} times the integral of \\spad{exp(-x**2) dx}.")) (|dilog| (($ $) "\\spad{dilog(x)} returns the dilogarithm of \\spad{x},{} \\spadignore{i.e.} the integral of \\spad{log(x) / (1 - x) dx}.")) (|li| (($ $) "\\spad{\\spad{li}(x)} returns the logarithmic integral of \\spad{x},{} \\spadignore{i.e.} the integral of \\spad{dx / log(x)}.")) (|Ci| (($ $) "\\spad{\\spad{Ci}(x)} returns the cosine integral of \\spad{x},{} \\spadignore{i.e.} the integral of \\spad{cos(x) / x dx}.")) (|Si| (($ $) "\\spad{\\spad{Si}(x)} returns the sine integral of \\spad{x},{} \\spadignore{i.e.} the integral of \\spad{sin(x) / x dx}.")) (|Ei| (($ $) "\\spad{\\spad{Ei}(x)} returns the exponential integral of \\spad{x},{} \\spadignore{i.e.} the integral of \\spad{exp(x)/x dx}."))) 
+((|constructor| (NIL "Category for the transcendental Liouvillian functions.")) (|fresnelC| (($ $) "fresnelC is the Fresnel integral \\spad{C},{} defined by \\spad{C}(\\spad{x}) = integrate(cos(\\spad{t^2}),{}\\spad{t=0}..\\spad{x})")) (|fresnelS| (($ $) "fresnelS is the Fresnel integral \\spad{S},{} defined by \\spad{S}(\\spad{x}) = integrate(sin(\\spad{t^2}),{}\\spad{t=0}..\\spad{x})")) (|erf| (($ $) "\\spad{erf(x)} returns the error function of \\spad{x},{} \\spadignore{i.e.} \\spad{2 / sqrt(\\%\\spad{pi})} times the integral of \\spad{exp(-x**2) dx}.")) (|dilog| (($ $) "\\spad{dilog(x)} returns the dilogarithm of \\spad{x},{} \\spadignore{i.e.} the integral of \\spad{log(x) / (1 - x) dx}.")) (|li| (($ $) "\\spad{\\spad{li}(x)} returns the logarithmic integral of \\spad{x},{} \\spadignore{i.e.} the integral of \\spad{dx / log(x)}.")) (|Ci| (($ $) "\\spad{\\spad{Ci}(x)} returns the cosine integral of \\spad{x},{} \\spadignore{i.e.} the integral of \\spad{cos(x) / x dx}.")) (|Si| (($ $) "\\spad{\\spad{Si}(x)} returns the sine integral of \\spad{x},{} \\spadignore{i.e.} the integral of \\spad{sin(x) / x dx}.")) (|Ei| (($ $) "\\spad{\\spad{Ei}(x)} returns the exponential integral of \\spad{x},{} \\spadignore{i.e.} the integral of \\spad{exp(x)/x dx}."))) 
 NIL 
 NIL 
 (-621 R -1478) 
-((|constructor| (NIL "This package provides liouvillian functions over an integral domain.")) (|integral| ((|#2| |#2| (|SegmentBinding| |#2|)) "\\spad{integral(f,{}x = a..b)} denotes the definite integral of \\spad{f} with respect to \\spad{x} from \\spad{a} to \\spad{b}.") ((|#2| |#2| (|Symbol|)) "\\spad{integral(f,{}x)} indefinite integral of \\spad{f} with respect to \\spad{x}.")) (|dilog| ((|#2| |#2|) "\\spad{dilog(f)} denotes the dilogarithm")) (|erf| ((|#2| |#2|) "\\spad{erf(f)} denotes the error function")) (|li| ((|#2| |#2|) "\\spad{\\spad{li}(f)} denotes the logarithmic integral")) (|Ci| ((|#2| |#2|) "\\spad{\\spad{Ci}(f)} denotes the cosine integral")) (|Si| ((|#2| |#2|) "\\spad{\\spad{Si}(f)} denotes the sine integral")) (|Ei| ((|#2| |#2|) "\\spad{\\spad{Ei}(f)} denotes the exponential integral")) (|operator| (((|BasicOperator|) (|BasicOperator|)) "\\spad{operator(op)} returns the Liouvillian operator based on \\spad{op}")) (|belong?| (((|Boolean|) (|BasicOperator|)) "\\spad{belong?(op)} checks if \\spad{op} is Liouvillian"))) 
+((|constructor| (NIL "This package provides liouvillian functions over an integral domain.")) (|integral| ((|#2| |#2| (|SegmentBinding| |#2|)) "\\spad{integral(f,{}x = a..b)} denotes the definite integral of \\spad{f} with respect to \\spad{x} from \\spad{a} to \\spad{b}.") ((|#2| |#2| (|Symbol|)) "\\spad{integral(f,{}x)} indefinite integral of \\spad{f} with respect to \\spad{x}.")) (|fresnelC| ((|#2| |#2|) "\\spad{fresnelC(f)} denotes the Fresnel integral \\spad{C}")) (|fresnelS| ((|#2| |#2|) "\\spad{fresnelS(f)} denotes the Fresnel integral \\spad{S}")) (|dilog| ((|#2| |#2|) "\\spad{dilog(f)} denotes the dilogarithm")) (|erf| ((|#2| |#2|) "\\spad{erf(f)} denotes the error function")) (|li| ((|#2| |#2|) "\\spad{\\spad{li}(f)} denotes the logarithmic integral")) (|Ci| ((|#2| |#2|) "\\spad{\\spad{Ci}(f)} denotes the cosine integral")) (|Si| ((|#2| |#2|) "\\spad{\\spad{Si}(f)} denotes the sine integral")) (|Ei| ((|#2| |#2|) "\\spad{\\spad{Ei}(f)} denotes the exponential integral")) (|operator| (((|BasicOperator|) (|BasicOperator|)) "\\spad{operator(op)} returns the Liouvillian operator based on \\spad{op}")) (|belong?| (((|Boolean|) (|BasicOperator|)) "\\spad{belong?(op)} checks if \\spad{op} is Liouvillian"))) 
 NIL 
 NIL 
 (-622 |lv| -1478) 
@@ -2422,20 +2422,20 @@ NIL
 NIL 
 (-623) 
 ((|constructor| (NIL "This domain provides a simple way to save values in files.")) (|close!| (($ $) "\\spad{close!(f)} returns the library \\spad{f} closed to input and output.")) (|setelt| (((|Any|) $ (|Symbol|) (|Any|)) "\\spad{lib.k := v} saves the value \\spad{v} in the library \\spad{lib}. It can later be extracted using the key \\spad{k}.")) (|elt| (((|Any|) $ (|Symbol|)) "\\spad{elt(lib,{}k)} or \\spad{lib}.\\spad{k} extracts the value corresponding to the key \\spad{k} from the library \\spad{lib}.")) (|pack!| (($ $) "\\spad{pack!(f)} reorganizes the file \\spad{f} on disk to recover unused space.")) (|library| (($ (|FileName|)) "\\spad{library(ln)} creates a new library file."))) 
-((-4520 . T)) 
-((|HasCategory| (-2 (|:| -3649 (-1143)) (|:| -4083 (-57))) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-1143) (QUOTE (-842))) (|HasCategory| (-57) (QUOTE (-1090))) (-12 (|HasCategory| (-57) (LIST (QUOTE -303) (QUOTE (-57)))) (|HasCategory| (-57) (QUOTE (-1090)))) (|HasCategory| (-2 (|:| -3649 (-1143)) (|:| -4083 (-57))) (QUOTE (-1090))) (-12 (|HasCategory| (-2 (|:| -3649 (-1143)) (|:| -4083 (-57))) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3649) (QUOTE (-1143))) (LIST (QUOTE |:|) (QUOTE -4083) (QUOTE (-57)))))) (|HasCategory| (-2 (|:| -3649 (-1143)) (|:| -4083 (-57))) (QUOTE (-1090)))) (-2198 (|HasCategory| (-57) (QUOTE (-1090))) (|HasCategory| (-2 (|:| -3649 (-1143)) (|:| -4083 (-57))) (QUOTE (-1090))))) 
+((-4522 . T)) 
+((|HasCategory| (-2 (|:| -3651 (-1143)) (|:| -4085 (-57))) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-1143) (QUOTE (-842))) (|HasCategory| (-57) (QUOTE (-1090))) (-12 (|HasCategory| (-57) (LIST (QUOTE -303) (QUOTE (-57)))) (|HasCategory| (-57) (QUOTE (-1090)))) (|HasCategory| (-2 (|:| -3651 (-1143)) (|:| -4085 (-57))) (QUOTE (-1090))) (-12 (|HasCategory| (-2 (|:| -3651 (-1143)) (|:| -4085 (-57))) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE -3651) (QUOTE (-1143))) (LIST (QUOTE |:|) (QUOTE -4085) (QUOTE (-57)))))) (|HasCategory| (-2 (|:| -3651 (-1143)) (|:| -4085 (-57))) (QUOTE (-1090)))) (-2199 (|HasCategory| (-57) (QUOTE (-1090))) (|HasCategory| (-2 (|:| -3651 (-1143)) (|:| -4085 (-57))) (QUOTE (-1090))))) 
 (-624 S R) 
 ((|constructor| (NIL "The category of Lie Algebras. It is used by the domains of non-commutative algebra,{} LiePolynomial and XPBWPolynomial.")) (/ (($ $ |#2|) "\\axiom{\\spad{x/r}} returns the division of \\axiom{\\spad{x}} by \\axiom{\\spad{r}}.")) (|construct| (($ $ $) "\\axiom{construct(\\spad{x},{}\\spad{y})} returns the Lie bracket of \\axiom{\\spad{x}} and \\axiom{\\spad{y}}."))) 
 NIL 
 ((|HasCategory| |#2| (QUOTE (-365)))) 
 (-625 R) 
 ((|constructor| (NIL "The category of Lie Algebras. It is used by the domains of non-commutative algebra,{} LiePolynomial and XPBWPolynomial.")) (/ (($ $ |#1|) "\\axiom{\\spad{x/r}} returns the division of \\axiom{\\spad{x}} by \\axiom{\\spad{r}}.")) (|construct| (($ $ $) "\\axiom{construct(\\spad{x},{}\\spad{y})} returns the Lie bracket of \\axiom{\\spad{x}} and \\axiom{\\spad{y}}."))) 
-((|JacobiIdentity| . T) (|NullSquare| . T) (-4514 . T) (-4513 . T)) 
+((|JacobiIdentity| . T) (|NullSquare| . T) (-4516 . T) (-4515 . T)) 
 NIL 
 (-626 R A) 
 ((|constructor| (NIL "AssociatedLieAlgebra takes an algebra \\spad{A} and uses \\spadfun{*\\$A} to define the Lie bracket \\spad{a*b := (a *\\$A b - b *\\$A a)} (commutator). Note that the notation \\spad{[a,{}b]} cannot be used due to restrictions of the current compiler. This domain only gives a Lie algebra if the Jacobi-identity \\spad{(a*b)*c + (b*c)*a + (c*a)*b = 0} holds for all \\spad{a},{}\\spad{b},{}\\spad{c} in \\spad{A}. This relation can be checked by \\spad{lieAdmissible?()\\$A}. \\blankline If the underlying algebra is of type \\spadtype{FramedNonAssociativeAlgebra(R)} (\\spadignore{i.e.} a non associative algebra over \\spad{R} which is a free \\spad{R}-module of finite rank,{} together with a fixed \\spad{R}-module basis),{} then the same is \\spad{true} for the associated Lie algebra. Also,{} if the underlying algebra is of type \\spadtype{FiniteRankNonAssociativeAlgebra(R)} (\\spadignore{i.e.} a non associative algebra over \\spad{R} which is a free \\spad{R}-module of finite rank),{} then the same is \\spad{true} for the associated Lie algebra.")) (|coerce| (($ |#2|) "\\spad{coerce(a)} coerces the element \\spad{a} of the algebra \\spad{A} to an element of the Lie algebra \\spadtype{AssociatedLieAlgebra}(\\spad{R},{}A)."))) 
-((-4516 -2198 (-2139 (|has| |#2| (-369 |#1|)) (|has| |#1| (-558))) (-12 (|has| |#2| (-419 |#1|)) (|has| |#1| (-558)))) (-4514 . T) (-4513 . T)) 
-((|HasCategory| |#2| (LIST (QUOTE -419) (|devaluate| |#1|))) (-12 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#2| (LIST (QUOTE -419) (|devaluate| |#1|)))) (|HasCategory| |#2| (LIST (QUOTE -369) (|devaluate| |#1|))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -369) (|devaluate| |#1|))) (|HasCategory| |#2| (LIST (QUOTE -419) (|devaluate| |#1|)))) (-2198 (-12 (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#2| (LIST (QUOTE -369) (|devaluate| |#1|)))) (-12 (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#2| (LIST (QUOTE -419) (|devaluate| |#1|)))))) 
+((-4518 -2199 (-2141 (|has| |#2| (-369 |#1|)) (|has| |#1| (-558))) (-12 (|has| |#2| (-419 |#1|)) (|has| |#1| (-558)))) (-4516 . T) (-4515 . T)) 
+((|HasCategory| |#2| (LIST (QUOTE -419) (|devaluate| |#1|))) (-12 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#2| (LIST (QUOTE -419) (|devaluate| |#1|)))) (|HasCategory| |#2| (LIST (QUOTE -369) (|devaluate| |#1|))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -369) (|devaluate| |#1|))) (|HasCategory| |#2| (LIST (QUOTE -419) (|devaluate| |#1|)))) (-2199 (-12 (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#2| (LIST (QUOTE -369) (|devaluate| |#1|)))) (-12 (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#2| (LIST (QUOTE -419) (|devaluate| |#1|)))))) 
 (-627 R FE) 
 ((|constructor| (NIL "PowerSeriesLimitPackage implements limits of expressions in one or more variables as one of the variables approaches a limiting value. Included are two-sided limits,{} left- and right- hand limits,{} and limits at plus or minus infinity.")) (|complexLimit| (((|Union| (|OnePointCompletion| |#2|) "failed") |#2| (|Equation| (|OnePointCompletion| |#2|))) "\\spad{complexLimit(f(x),{}x = a)} computes the complex limit \\spad{lim(x -> a,{}f(x))}.")) (|limit| (((|Union| (|OrderedCompletion| |#2|) "failed") |#2| (|Equation| |#2|) (|String|)) "\\spad{limit(f(x),{}x=a,{}\"left\")} computes the left hand real limit \\spad{lim(x -> a-,{}f(x))}; \\spad{limit(f(x),{}x=a,{}\"right\")} computes the right hand real limit \\spad{lim(x -> a+,{}f(x))}.") (((|Union| (|OrderedCompletion| |#2|) (|Record| (|:| |leftHandLimit| (|Union| (|OrderedCompletion| |#2|) "failed")) (|:| |rightHandLimit| (|Union| (|OrderedCompletion| |#2|) "failed"))) "failed") |#2| (|Equation| (|OrderedCompletion| |#2|))) "\\spad{limit(f(x),{}x = a)} computes the real limit \\spad{lim(x -> a,{}f(x))}."))) 
 NIL 
@@ -2447,10 +2447,10 @@ NIL
 (-629 S R) 
 ((|constructor| (NIL "Test for linear dependence.")) (|solveLinear| (((|Union| (|Vector| (|Fraction| |#1|)) "failed") (|Vector| |#2|) |#2|) "\\spad{solveLinear([v1,{}...,{}vn],{} u)} returns \\spad{[c1,{}...,{}cn]} such that \\spad{c1*v1 + ... + cn*vn = u},{} \"failed\" if no such \\spad{ci}\\spad{'s} exist in the quotient field of \\spad{S}.") (((|Union| (|Vector| |#1|) "failed") (|Vector| |#2|) |#2|) "\\spad{solveLinear([v1,{}...,{}vn],{} u)} returns \\spad{[c1,{}...,{}cn]} such that \\spad{c1*v1 + ... + cn*vn = u},{} \"failed\" if no such \\spad{ci}\\spad{'s} exist in \\spad{S}.")) (|linearDependence| (((|Union| (|Vector| |#1|) "failed") (|Vector| |#2|)) "\\spad{linearDependence([v1,{}...,{}vn])} returns \\spad{[c1,{}...,{}cn]} if \\spad{c1*v1 + ... + cn*vn = 0} and not all the \\spad{ci}\\spad{'s} are 0,{} \"failed\" if the \\spad{vi}\\spad{'s} are linearly independent over \\spad{S}.")) (|linearlyDependent?| (((|Boolean|) (|Vector| |#2|)) "\\spad{linearlyDependent?([v1,{}...,{}vn])} returns \\spad{true} if the \\spad{vi}\\spad{'s} are linearly dependent over \\spad{S},{} \\spad{false} otherwise."))) 
 NIL 
-((|HasCategory| |#1| (QUOTE (-365))) (-3044 (|HasCategory| |#1| (QUOTE (-365))))) 
+((|HasCategory| |#1| (QUOTE (-365))) (-3046 (|HasCategory| |#1| (QUOTE (-365))))) 
 (-630 R) 
 ((|constructor| (NIL "An extension ring with an explicit linear dependence test.")) (|reducedSystem| (((|Record| (|:| |mat| (|Matrix| |#1|)) (|:| |vec| (|Vector| |#1|))) (|Matrix| $) (|Vector| $)) "\\spad{reducedSystem(A,{} v)} returns a matrix \\spad{B} and a vector \\spad{w} such that \\spad{A x = v} and \\spad{B x = w} have the same solutions in \\spad{R}.") (((|Matrix| |#1|) (|Matrix| $)) "\\spad{reducedSystem(A)} returns a matrix \\spad{B} such that \\spad{A x = 0} and \\spad{B x = 0} have the same solutions in \\spad{R}."))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-631 A B) 
 ((|constructor| (NIL "\\spadtype{ListToMap} allows mappings to be described by a pair of lists of equal lengths. The image of an element \\spad{x},{} which appears in position \\spad{n} in the first list,{} is then the \\spad{n}th element of the second list. A default value or default function can be specified to be used when \\spad{x} does not appear in the first list. In the absence of defaults,{} an error will occur in that case.")) (|match| ((|#2| (|List| |#1|) (|List| |#2|) |#1| (|Mapping| |#2| |#1|)) "\\spad{match(la,{} lb,{} a,{} f)} creates a map defined by lists \\spad{la} and \\spad{lb} of equal length. and applies this map to a. The target of a source value \\spad{x} in \\spad{la} is the value \\spad{y} with the same index \\spad{lb}. Argument \\spad{f} is a default function to call if a is not in \\spad{la}. The value returned is then obtained by applying \\spad{f} to argument a.") (((|Mapping| |#2| |#1|) (|List| |#1|) (|List| |#2|) (|Mapping| |#2| |#1|)) "\\spad{match(la,{} lb,{} f)} creates a map defined by lists \\spad{la} and \\spad{lb} of equal length. The target of a source value \\spad{x} in \\spad{la} is the value \\spad{y} with the same index \\spad{lb}. Argument \\spad{f} is used as the function to call when the given function argument is not in \\spad{la}. The value returned is \\spad{f} applied to that argument.") ((|#2| (|List| |#1|) (|List| |#2|) |#1| |#2|) "\\spad{match(la,{} lb,{} a,{} b)} creates a map defined by lists \\spad{la} and \\spad{lb} of equal length. and applies this map to a. The target of a source value \\spad{x} in \\spad{la} is the value \\spad{y} with the same index \\spad{lb}. Argument \\spad{b} is the default target value if a is not in \\spad{la}. Error: if \\spad{la} and \\spad{lb} are not of equal length.") (((|Mapping| |#2| |#1|) (|List| |#1|) (|List| |#2|) |#2|) "\\spad{match(la,{} lb,{} b)} creates a map defined by lists \\spad{la} and \\spad{lb} of equal length,{} where \\spad{b} is used as the default target value if the given function argument is not in \\spad{la}. The target of a source value \\spad{x} in \\spad{la} is the value \\spad{y} with the same index \\spad{lb}. Error: if \\spad{la} and \\spad{lb} are not of equal length.") ((|#2| (|List| |#1|) (|List| |#2|) |#1|) "\\spad{match(la,{} lb,{} a)} creates a map defined by lists \\spad{la} and \\spad{lb} of equal length,{} where \\spad{a} is used as the default source value if the given one is not in \\spad{la}. The target of a source value \\spad{x} in \\spad{la} is the value \\spad{y} with the same index \\spad{lb}. Error: if \\spad{la} and \\spad{lb} are not of equal length.") (((|Mapping| |#2| |#1|) (|List| |#1|) (|List| |#2|)) "\\spad{match(la,{} lb)} creates a map with no default source or target values defined by lists \\spad{la} and \\spad{lb} of equal length. The target of a source value \\spad{x} in \\spad{la} is the value \\spad{y} with the same index \\spad{lb}. Error: if \\spad{la} and \\spad{lb} are not of equal length. Note that when this map is applied,{} an error occurs when applied to a value missing from \\spad{la}."))) 
@@ -2466,15 +2466,15 @@ NIL
 NIL 
 (-634 S) 
 ((|constructor| (NIL "\\spadtype{List} implements singly-linked lists that are addressable by indices; the index of the first element is 1. In addition to the operations provided by \\spadtype{IndexedList},{} this constructor provides some LISP-like functions such as \\spadfun{null} and \\spadfun{cons}.")) (|setDifference| (($ $ $) "\\spad{setDifference(u1,{}u2)} returns a list of the elements of \\spad{u1} that are not also in \\spad{u2}. The order of elements in the resulting list is unspecified.")) (|setIntersection| (($ $ $) "\\spad{setIntersection(u1,{}u2)} returns a list of the elements that lists \\spad{u1} and \\spad{u2} have in common. The order of elements in the resulting list is unspecified.")) (|setUnion| (($ $ $) "\\spad{setUnion(u1,{}u2)} appends the two lists \\spad{u1} and \\spad{u2},{} then removes all duplicates. The order of elements in the resulting list is unspecified.")) (|append| (($ $ $) "\\spad{append(u1,{}u2)} appends the elements of list \\spad{u1} onto the front of list \\spad{u2}. This new list and \\spad{u2} will share some structure.")) (|cons| (($ |#1| $) "\\spad{cons(element,{}u)} appends \\spad{element} onto the front of list \\spad{u} and returns the new list. This new list and the old one will share some structure.")) (|null| (((|Boolean|) $) "\\spad{null(u)} tests if list \\spad{u} is the empty list.")) (|nil| (($) "\\spad{nil()} returns the empty list."))) 
-((-4520 . T) (-4519 . T)) 
-((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (-2198 (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-823))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
+((-4522 . T) (-4521 . T)) 
+((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (-2199 (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-823))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-842)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
 (-635 K PCS) 
 ((|constructor| (NIL "Part of the PAFF package")) (|finiteSeries2LinSys| (((|Matrix| |#1|) (|List| |#2|) (|Integer|)) "\\spad{finiteSeries2LinSys(ls,{}n)} returns a matrix which right kernel is the solution of the linear combinations of the series in \\spad{ls} which has order greater or equal to \\spad{n}. NOTE: All the series in \\spad{ls} must be finite and must have order at least 0: so one must first call on each of them the function filterUpTo(\\spad{s},{}\\spad{n}) and apply an appropriate shift (mult by a power of \\spad{t})."))) 
 NIL 
 NIL 
 (-636 S) 
 ((|constructor| (NIL "The \\spadtype{ListMultiDictionary} domain implements a dictionary with duplicates allowed. The representation is a list with duplicates represented explicitly. Hence most operations will be relatively inefficient when the number of entries in the dictionary becomes large. If the objects in the dictionary belong to an ordered set,{} the entries are maintained in ascending order.")) (|substitute| (($ |#1| |#1| $) "\\spad{substitute(x,{}y,{}d)} replace \\spad{x}\\spad{'s} with \\spad{y}\\spad{'s} in dictionary \\spad{d}.")) (|duplicates?| (((|Boolean|) $) "\\spad{duplicates?(d)} tests if dictionary \\spad{d} has duplicate entries."))) 
-((-4519 . T) (-4520 . T)) 
+((-4521 . T) (-4522 . T)) 
 ((|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541))))) 
 (-637 R) 
 ((|constructor| (NIL "The category of left modules over an \\spad{rng} (ring not necessarily with unit). This is an abelian group which supports left multiplation by elements of the \\spad{rng}. \\blankline Axioms\\spad{\\br} \\tab{5}\\spad{ (a*b)*x = a*(b*x) }\\spad{\\br} \\tab{5}\\spad{ (a+b)*x = (a*x)+(b*x) }\\spad{\\br} \\tab{5}\\spad{ a*(x+y) = (a*x)+(a*y) }")) (* (($ |#1| $) "\\spad{r*x} returns the left multiplication of the module element \\spad{x} by the ring element \\spad{r}."))) 
@@ -2487,14 +2487,14 @@ NIL
 (-639 A S) 
 ((|constructor| (NIL "A linear aggregate is an aggregate whose elements are indexed by integers. Examples of linear aggregates are strings,{} lists,{} and arrays. Most of the exported operations for linear aggregates are non-destructive but are not always efficient for a particular aggregate. For example,{} \\spadfun{concat} of two lists needs only to copy its first argument,{} whereas \\spadfun{concat} of two arrays needs to copy both arguments. Most of the operations exported here apply to infinite objects (\\spadignore{e.g.} streams) as well to finite ones. For finite linear aggregates,{} see \\spadtype{FiniteLinearAggregate}.")) (|setelt| ((|#2| $ (|UniversalSegment| (|Integer|)) |#2|) "\\spad{setelt(u,{}i..j,{}x)} (also written: \\axiom{\\spad{u}(\\spad{i}..\\spad{j}) \\spad{:=} \\spad{x}}) destructively replaces each element in the segment \\axiom{\\spad{u}(\\spad{i}..\\spad{j})} by \\spad{x}. The value \\spad{x} is returned. Note that \\spad{u} is destructively change so that \\axiom{\\spad{u}.\\spad{k} \\spad{:=} \\spad{x} for \\spad{k} in \\spad{i}..\\spad{j}}; its length remains unchanged.")) (|insert| (($ $ $ (|Integer|)) "\\spad{insert(v,{}u,{}k)} returns a copy of \\spad{u} having \\spad{v} inserted beginning at the \\axiom{\\spad{i}}th element. Note that \\axiom{insert(\\spad{v},{}\\spad{u},{}\\spad{k}) = concat( \\spad{u}(0..\\spad{k}-1),{} \\spad{v},{} \\spad{u}(\\spad{k}..) )}.") (($ |#2| $ (|Integer|)) "\\spad{insert(x,{}u,{}i)} returns a copy of \\spad{u} having \\spad{x} as its \\axiom{\\spad{i}}th element. Note that \\axiom{insert(\\spad{x},{}a,{}\\spad{k}) = concat(concat(a(0..\\spad{k}-1),{}\\spad{x}),{}a(\\spad{k}..))}.")) (|delete| (($ $ (|UniversalSegment| (|Integer|))) "\\spad{delete(u,{}i..j)} returns a copy of \\spad{u} with the \\axiom{\\spad{i}}th through \\axiom{\\spad{j}}th element deleted. Note that \\axiom{delete(a,{}\\spad{i}..\\spad{j}) = concat(a(0..\\spad{i}-1),{}a(\\spad{j+1}..))}.") (($ $ (|Integer|)) "\\spad{delete(u,{}i)} returns a copy of \\spad{u} with the \\axiom{\\spad{i}}th element deleted. Note that for lists,{} \\axiom{delete(a,{}\\spad{i}) \\spad{==} concat(a(0..\\spad{i} - 1),{}a(\\spad{i} + 1,{}..))}.")) (|elt| (($ $ (|UniversalSegment| (|Integer|))) "\\spad{elt(u,{}i..j)} (also written: \\axiom{a(\\spad{i}..\\spad{j})}) returns the aggregate of elements \\axiom{\\spad{u}} for \\spad{k} from \\spad{i} to \\spad{j} in that order. Note that in general,{} \\axiom{a.\\spad{s} = [a.\\spad{k} for \\spad{i} in \\spad{s}]}.")) (|map| (($ (|Mapping| |#2| |#2| |#2|) $ $) "\\spad{map(f,{}u,{}v)} returns a new collection \\spad{w} with elements \\axiom{\\spad{z} = \\spad{f}(\\spad{x},{}\\spad{y})} for corresponding elements \\spad{x} and \\spad{y} from \\spad{u} and \\spad{v}. Note that for linear aggregates,{} \\axiom{\\spad{w}.\\spad{i} = \\spad{f}(\\spad{u}.\\spad{i},{}\\spad{v}.\\spad{i})}.")) (|concat| (($ (|List| $)) "\\spad{concat(u)},{} where \\spad{u} is a lists of aggregates \\axiom{[a,{}\\spad{b},{}...,{}\\spad{c}]},{} returns a single aggregate consisting of the elements of \\axiom{a} followed by those of \\spad{b} followed ... by the elements of \\spad{c}. Note that \\axiom{concat(a,{}\\spad{b},{}...,{}\\spad{c}) = concat(a,{}concat(\\spad{b},{}...,{}\\spad{c}))}.") (($ $ $) "\\spad{concat(u,{}v)} returns an aggregate consisting of the elements of \\spad{u} followed by the elements of \\spad{v}. Note that if \\axiom{\\spad{w} = concat(\\spad{u},{}\\spad{v})} then \\axiom{\\spad{w}.\\spad{i} = \\spad{u}.\\spad{i} for \\spad{i} in indices \\spad{u}} and \\axiom{\\spad{w}.(\\spad{j} + maxIndex \\spad{u}) = \\spad{v}.\\spad{j} for \\spad{j} in indices \\spad{v}}.") (($ |#2| $) "\\spad{concat(x,{}u)} returns aggregate \\spad{u} with additional element at the front. Note that for lists: \\axiom{concat(\\spad{x},{}\\spad{u}) \\spad{==} concat([\\spad{x}],{}\\spad{u})}.") (($ $ |#2|) "\\spad{concat(u,{}x)} returns aggregate \\spad{u} with additional element \\spad{x} at the end. Note that for lists,{} \\axiom{concat(\\spad{u},{}\\spad{x}) \\spad{==} concat(\\spad{u},{}[\\spad{x}])}")) (|new| (($ (|NonNegativeInteger|) |#2|) "\\spad{new(n,{}x)} returns \\axiom{fill!(new \\spad{n},{}\\spad{x})}."))) 
 NIL 
-((|HasAttribute| |#1| (QUOTE -4520))) 
+((|HasAttribute| |#1| (QUOTE -4522))) 
 (-640 S) 
 ((|constructor| (NIL "A linear aggregate is an aggregate whose elements are indexed by integers. Examples of linear aggregates are strings,{} lists,{} and arrays. Most of the exported operations for linear aggregates are non-destructive but are not always efficient for a particular aggregate. For example,{} \\spadfun{concat} of two lists needs only to copy its first argument,{} whereas \\spadfun{concat} of two arrays needs to copy both arguments. Most of the operations exported here apply to infinite objects (\\spadignore{e.g.} streams) as well to finite ones. For finite linear aggregates,{} see \\spadtype{FiniteLinearAggregate}.")) (|setelt| ((|#1| $ (|UniversalSegment| (|Integer|)) |#1|) "\\spad{setelt(u,{}i..j,{}x)} (also written: \\axiom{\\spad{u}(\\spad{i}..\\spad{j}) \\spad{:=} \\spad{x}}) destructively replaces each element in the segment \\axiom{\\spad{u}(\\spad{i}..\\spad{j})} by \\spad{x}. The value \\spad{x} is returned. Note that \\spad{u} is destructively change so that \\axiom{\\spad{u}.\\spad{k} \\spad{:=} \\spad{x} for \\spad{k} in \\spad{i}..\\spad{j}}; its length remains unchanged.")) (|insert| (($ $ $ (|Integer|)) "\\spad{insert(v,{}u,{}k)} returns a copy of \\spad{u} having \\spad{v} inserted beginning at the \\axiom{\\spad{i}}th element. Note that \\axiom{insert(\\spad{v},{}\\spad{u},{}\\spad{k}) = concat( \\spad{u}(0..\\spad{k}-1),{} \\spad{v},{} \\spad{u}(\\spad{k}..) )}.") (($ |#1| $ (|Integer|)) "\\spad{insert(x,{}u,{}i)} returns a copy of \\spad{u} having \\spad{x} as its \\axiom{\\spad{i}}th element. Note that \\axiom{insert(\\spad{x},{}a,{}\\spad{k}) = concat(concat(a(0..\\spad{k}-1),{}\\spad{x}),{}a(\\spad{k}..))}.")) (|delete| (($ $ (|UniversalSegment| (|Integer|))) "\\spad{delete(u,{}i..j)} returns a copy of \\spad{u} with the \\axiom{\\spad{i}}th through \\axiom{\\spad{j}}th element deleted. Note that \\axiom{delete(a,{}\\spad{i}..\\spad{j}) = concat(a(0..\\spad{i}-1),{}a(\\spad{j+1}..))}.") (($ $ (|Integer|)) "\\spad{delete(u,{}i)} returns a copy of \\spad{u} with the \\axiom{\\spad{i}}th element deleted. Note that for lists,{} \\axiom{delete(a,{}\\spad{i}) \\spad{==} concat(a(0..\\spad{i} - 1),{}a(\\spad{i} + 1,{}..))}.")) (|elt| (($ $ (|UniversalSegment| (|Integer|))) "\\spad{elt(u,{}i..j)} (also written: \\axiom{a(\\spad{i}..\\spad{j})}) returns the aggregate of elements \\axiom{\\spad{u}} for \\spad{k} from \\spad{i} to \\spad{j} in that order. Note that in general,{} \\axiom{a.\\spad{s} = [a.\\spad{k} for \\spad{i} in \\spad{s}]}.")) (|map| (($ (|Mapping| |#1| |#1| |#1|) $ $) "\\spad{map(f,{}u,{}v)} returns a new collection \\spad{w} with elements \\axiom{\\spad{z} = \\spad{f}(\\spad{x},{}\\spad{y})} for corresponding elements \\spad{x} and \\spad{y} from \\spad{u} and \\spad{v}. Note that for linear aggregates,{} \\axiom{\\spad{w}.\\spad{i} = \\spad{f}(\\spad{u}.\\spad{i},{}\\spad{v}.\\spad{i})}.")) (|concat| (($ (|List| $)) "\\spad{concat(u)},{} where \\spad{u} is a lists of aggregates \\axiom{[a,{}\\spad{b},{}...,{}\\spad{c}]},{} returns a single aggregate consisting of the elements of \\axiom{a} followed by those of \\spad{b} followed ... by the elements of \\spad{c}. Note that \\axiom{concat(a,{}\\spad{b},{}...,{}\\spad{c}) = concat(a,{}concat(\\spad{b},{}...,{}\\spad{c}))}.") (($ $ $) "\\spad{concat(u,{}v)} returns an aggregate consisting of the elements of \\spad{u} followed by the elements of \\spad{v}. Note that if \\axiom{\\spad{w} = concat(\\spad{u},{}\\spad{v})} then \\axiom{\\spad{w}.\\spad{i} = \\spad{u}.\\spad{i} for \\spad{i} in indices \\spad{u}} and \\axiom{\\spad{w}.(\\spad{j} + maxIndex \\spad{u}) = \\spad{v}.\\spad{j} for \\spad{j} in indices \\spad{v}}.") (($ |#1| $) "\\spad{concat(x,{}u)} returns aggregate \\spad{u} with additional element at the front. Note that for lists: \\axiom{concat(\\spad{x},{}\\spad{u}) \\spad{==} concat([\\spad{x}],{}\\spad{u})}.") (($ $ |#1|) "\\spad{concat(u,{}x)} returns aggregate \\spad{u} with additional element \\spad{x} at the end. Note that for lists,{} \\axiom{concat(\\spad{u},{}\\spad{x}) \\spad{==} concat(\\spad{u},{}[\\spad{x}])}")) (|new| (($ (|NonNegativeInteger|) |#1|) "\\spad{new(n,{}x)} returns \\axiom{fill!(new \\spad{n},{}\\spad{x})}."))) 
 ((-3973 . T)) 
 NIL 
 (-641 K) 
 ((|printInfo| (((|Boolean|)) "returns the value of the \\spad{printInfo} flag.") (((|Boolean|) (|Boolean|)) "\\spad{printInfo(b)} set a flag such that when \\spad{true} (\\spad{b} \\spad{<-} \\spad{true}) prints some information during some critical computation.")) (|coefOfFirstNonZeroTerm| ((|#1| $) "\\spad{coefOfFirstNonZeroTerm(s)} returns the first non zero coefficient of the series.")) (|filterUpTo| (($ $ (|Integer|)) "\\spad{filterUpTo(s,{}n)} returns the series consisting of the terms of \\spad{s} having degree strictly less than \\spad{n}.")) (|shift| (($ $ (|Integer|)) "\\spad{shift(s,{}n)} returns t**n * \\spad{s}")) (|series| (($ (|Integer|) |#1| $) "\\spad{series(e,{}c,{}s)} create the series c*t**e + \\spad{s}.")) (|removeZeroes| (($ $) "\\spad{removeZeroes(s)} removes the zero terms in \\spad{s}.") (($ (|Integer|) $) "\\spad{removeZeroes(n,{}s)} removes the zero terms in the first \\spad{n} terms of \\spad{s}.")) (|monomial2series| (($ (|List| $) (|List| (|NonNegativeInteger|)) (|Integer|)) "\\spad{monomial2series(ls,{}le,{}n)} returns t**n * reduce(\\spad{\"*\"},{}[\\spad{s} \\spad{**} \\spad{e} for \\spad{s} in \\spad{ls} for \\spad{e} in \\spad{le}])")) (|delay| (($ (|Mapping| $)) "\\spad{delay delayed} the computation of the next term of the series given by the input function.")) (|posExpnPart| (($ $) "\\spad{posExpnPart(s)} returns the series \\spad{s} less the terms with negative exponant.")) (|order| (((|Integer|) $) "\\spad{order(s)} returns the order of \\spad{s}."))) 
-(((-4521 "*") . T) (-4512 . T) (-4511 . T) (-4517 . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+(((-4523 "*") . T) (-4514 . T) (-4513 . T) (-4519 . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-642 R -1478 L) 
 ((|constructor| (NIL "\\spad{ElementaryFunctionLODESolver} provides the top-level functions for finding closed form solutions of linear ordinary differential equations and initial value problems.")) (|solve| (((|Union| |#2| "failed") |#3| |#2| (|Symbol|) |#2| (|List| |#2|)) "\\spad{solve(op,{} g,{} x,{} a,{} [y0,{}...,{}ym])} returns either the solution of the initial value problem \\spad{op y = g,{} y(a) = y0,{} y'(a) = y1,{}...} or \"failed\" if the solution cannot be found; \\spad{x} is the dependent variable.") (((|Union| (|Record| (|:| |particular| |#2|) (|:| |basis| (|List| |#2|))) "failed") |#3| |#2| (|Symbol|)) "\\spad{solve(op,{} g,{} x)} returns either a solution of the ordinary differential equation \\spad{op y = g} or \"failed\" if no non-trivial solution can be found; When found,{} the solution is returned in the form \\spad{[h,{} [b1,{}...,{}bm]]} where \\spad{h} is a particular solution and and \\spad{[b1,{}...bm]} are linearly independent solutions of the associated homogenuous equation \\spad{op y = 0}. A full basis for the solutions of the homogenuous equation is not always returned,{} only the solutions which were found; \\spad{x} is the dependent variable."))) 
@@ -2502,11 +2502,11 @@ NIL
 NIL 
 (-643 A) 
 ((|constructor| (NIL "\\spad{LinearOrdinaryDifferentialOperator1} defines a ring of differential operators with coefficients in a differential ring A. Multiplication of operators corresponds to functional composition:\\spad{\\br} \\spad{(L1 * L2).(f) = L1 L2 f}"))) 
-((-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4515 . T) (-4516 . T) (-4518 . T)) 
 ((|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-365)))) 
 (-644 A M) 
 ((|constructor| (NIL "\\spad{LinearOrdinaryDifferentialOperator2} defines a ring of differential operators with coefficients in a differential ring A and acting on an A-module \\spad{M}. Multiplication of operators corresponds to functional composition:\\spad{\\br} \\spad{(L1 * L2).(f) = L1 L2 f}")) (|differentiate| (($ $) "\\spad{differentiate(x)} returns the derivative of \\spad{x}"))) 
-((-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4515 . T) (-4516 . T) (-4518 . T)) 
 ((|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-365)))) 
 (-645 S A) 
 ((|constructor| (NIL "LinearOrdinaryDifferentialOperatorCategory is the category of differential operators with coefficients in a ring A with a given derivation. \\blankline Multiplication of operators corresponds to functional composition:\\spad{\\br} (\\spad{L1} * \\spad{L2}).(\\spad{f}) = \\spad{L1} \\spad{L2} \\spad{f}")) (|directSum| (($ $ $) "\\spad{directSum(a,{}b)} computes an operator \\spad{c} of minimal order such that the nullspace of \\spad{c} is generated by all the sums of a solution of \\spad{a} by a solution of \\spad{b}.")) (|symmetricSquare| (($ $) "\\spad{symmetricSquare(a)} computes \\spad{symmetricProduct(a,{}a)} using a more efficient method.")) (|symmetricPower| (($ $ (|NonNegativeInteger|)) "\\spad{symmetricPower(a,{}n)} computes an operator \\spad{c} of minimal order such that the nullspace of \\spad{c} is generated by all the products of \\spad{n} solutions of \\spad{a}.")) (|symmetricProduct| (($ $ $) "\\spad{symmetricProduct(a,{}b)} computes an operator \\spad{c} of minimal order such that the nullspace of \\spad{c} is generated by all the products of a solution of \\spad{a} by a solution of \\spad{b}.")) (|adjoint| (($ $) "\\spad{adjoint(a)} returns the adjoint operator of a.")) (D (($) "\\spad{D()} provides the operator corresponding to a derivation in the ring \\spad{A}."))) 
@@ -2514,15 +2514,15 @@ NIL
 ((|HasCategory| |#2| (QUOTE (-365)))) 
 (-646 A) 
 ((|constructor| (NIL "LinearOrdinaryDifferentialOperatorCategory is the category of differential operators with coefficients in a ring A with a given derivation. \\blankline Multiplication of operators corresponds to functional composition:\\spad{\\br} (\\spad{L1} * \\spad{L2}).(\\spad{f}) = \\spad{L1} \\spad{L2} \\spad{f}")) (|directSum| (($ $ $) "\\spad{directSum(a,{}b)} computes an operator \\spad{c} of minimal order such that the nullspace of \\spad{c} is generated by all the sums of a solution of \\spad{a} by a solution of \\spad{b}.")) (|symmetricSquare| (($ $) "\\spad{symmetricSquare(a)} computes \\spad{symmetricProduct(a,{}a)} using a more efficient method.")) (|symmetricPower| (($ $ (|NonNegativeInteger|)) "\\spad{symmetricPower(a,{}n)} computes an operator \\spad{c} of minimal order such that the nullspace of \\spad{c} is generated by all the products of \\spad{n} solutions of \\spad{a}.")) (|symmetricProduct| (($ $ $) "\\spad{symmetricProduct(a,{}b)} computes an operator \\spad{c} of minimal order such that the nullspace of \\spad{c} is generated by all the products of a solution of \\spad{a} by a solution of \\spad{b}.")) (|adjoint| (($ $) "\\spad{adjoint(a)} returns the adjoint operator of a.")) (D (($) "\\spad{D()} provides the operator corresponding to a derivation in the ring \\spad{A}."))) 
-((-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-647 -1478 UP) 
 ((|constructor| (NIL "\\spadtype{LinearOrdinaryDifferentialOperatorFactorizer} provides a factorizer for linear ordinary differential operators whose coefficients are rational functions.")) (|factor1| (((|List| (|LinearOrdinaryDifferentialOperator1| (|Fraction| |#2|))) (|LinearOrdinaryDifferentialOperator1| (|Fraction| |#2|))) "\\spad{factor1(a)} returns the factorisation of a,{} assuming that a has no first-order right factor.")) (|factor| (((|List| (|LinearOrdinaryDifferentialOperator1| (|Fraction| |#2|))) (|LinearOrdinaryDifferentialOperator1| (|Fraction| |#2|))) "\\spad{factor(a)} returns the factorisation of a.") (((|List| (|LinearOrdinaryDifferentialOperator1| (|Fraction| |#2|))) (|LinearOrdinaryDifferentialOperator1| (|Fraction| |#2|)) (|Mapping| (|List| |#1|) |#2|)) "\\spad{factor(a,{} zeros)} returns the factorisation of a. \\spad{zeros} is a zero finder in \\spad{UP}."))) 
 NIL 
 ((|HasCategory| |#1| (QUOTE (-27)))) 
-(-648 A -2060) 
+(-648 A -1571) 
 ((|constructor| (NIL "\\spad{LinearOrdinaryDifferentialOperator} defines a ring of differential operators with coefficients in a ring A with a given derivation. Multiplication of operators corresponds to functional composition:\\spad{\\br} \\spad{(L1 * L2).(f) = L1 L2 f}"))) 
-((-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4515 . T) (-4516 . T) (-4518 . T)) 
 ((|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-365)))) 
 (-649 A L) 
 ((|constructor| (NIL "\\spad{LinearOrdinaryDifferentialOperatorsOps} provides symmetric products and sums for linear ordinary differential operators.")) (|directSum| ((|#2| |#2| |#2| (|Mapping| |#1| |#1|)) "\\spad{directSum(a,{}b,{}D)} computes an operator \\spad{c} of minimal order such that the nullspace of \\spad{c} is generated by all the sums of a solution of \\spad{a} by a solution of \\spad{b}. \\spad{D} is the derivation to use.")) (|symmetricPower| ((|#2| |#2| (|NonNegativeInteger|) (|Mapping| |#1| |#1|)) "\\spad{symmetricPower(a,{}n,{}D)} computes an operator \\spad{c} of minimal order such that the nullspace of \\spad{c} is generated by all the products of \\spad{n} solutions of \\spad{a}. \\spad{D} is the derivation to use.")) (|symmetricProduct| ((|#2| |#2| |#2| (|Mapping| |#1| |#1|)) "\\spad{symmetricProduct(a,{}b,{}D)} computes an operator \\spad{c} of minimal order such that the nullspace of \\spad{c} is generated by all the products of a solution of \\spad{a} by a solution of \\spad{b}. \\spad{D} is the derivation to use."))) 
@@ -2538,7 +2538,7 @@ NIL
 NIL 
 (-652 M R S) 
 ((|constructor| (NIL "Localize(\\spad{M},{}\\spad{R},{}\\spad{S}) produces fractions with numerators from an \\spad{R} module \\spad{M} and denominators from some multiplicative subset \\spad{D} of \\spad{R}.")) (|denom| ((|#3| $) "\\spad{denom x} returns the denominator of \\spad{x}.")) (|numer| ((|#1| $) "\\spad{numer x} returns the numerator of \\spad{x}.")) (/ (($ |#1| |#3|) "\\spad{m / d} divides the element \\spad{m} by \\spad{d}.") (($ $ |#3|) "\\spad{x / d} divides the element \\spad{x} by \\spad{d}."))) 
-((-4514 . T) (-4513 . T)) 
+((-4516 . T) (-4515 . T)) 
 ((|HasCategory| |#1| (QUOTE (-786)))) 
 (-653 K) 
 ((|constructor| (NIL "A package that exports several linear algebra operations over lines of matrices. Part of the PAFF package.")) (|reduceRowOnList| (((|List| (|List| |#1|)) (|List| |#1|) (|List| (|List| |#1|))) "\\spad{reduceRowOnList(v,{}lvec)} applies a row reduction on each of the element of \\spad{lv} using \\spad{v} according to a pivot in \\spad{v} which is set to be the first non nul element in \\spad{v}.")) (|reduceLineOverLine| (((|List| |#1|) (|List| |#1|) (|List| |#1|) |#1|) "\\spad{reduceLineOverLine(v1,{}v2,{}a)} returns \\spad{v1}-\\spad{a*v1} where \\indented{1}{\\spad{v1} and \\spad{v2} are considered as vector space.}")) (|quotVecSpaceBasis| (((|List| (|List| |#1|)) (|List| (|List| |#1|)) (|List| (|List| |#1|))) "\\spad{quotVecSpaceBasis(b1,{}b2)} returns a basis of \\spad{V1/V2} where \\spad{V1} and \\spad{V2} are vector space with basis \\spad{b1} and \\spad{b2} resp. and \\spad{V2} is suppose to be include in \\spad{V1}; Note that if it is not the case then it returs the basis of V1/W where \\spad{W} = intersection of \\spad{V1} and \\spad{V2}")) (|reduceRow| (((|List| (|List| |#1|)) (|List| (|List| |#1|))) "reduceRow: if the input is considered as a matrix,{} the output would be the row reduction matrix. It\\spad{'s} almost the rowEchelon form except that no permution of lines is performed."))) 
@@ -2554,7 +2554,7 @@ NIL
 NIL 
 (-656 |VarSet| R) 
 ((|constructor| (NIL "This type supports Lie polynomials in Lyndon basis see Free Lie Algebras by \\spad{C}. Reutenauer (Oxford science publications).")) (|construct| (($ $ (|LyndonWord| |#1|)) "\\axiom{construct(\\spad{x},{}\\spad{y})} returns the Lie bracket \\axiom{[\\spad{x},{}\\spad{y}]}.") (($ (|LyndonWord| |#1|) $) "\\axiom{construct(\\spad{x},{}\\spad{y})} returns the Lie bracket \\axiom{[\\spad{x},{}\\spad{y}]}.") (($ (|LyndonWord| |#1|) (|LyndonWord| |#1|)) "\\axiom{construct(\\spad{x},{}\\spad{y})} returns the Lie bracket \\axiom{[\\spad{x},{}\\spad{y}]}.")) (|LiePolyIfCan| (((|Union| $ "failed") (|XDistributedPolynomial| |#1| |#2|)) "\\axiom{LiePolyIfCan(\\spad{p})} returns \\axiom{\\spad{p}} in Lyndon basis if \\axiom{\\spad{p}} is a Lie polynomial,{} otherwise \\axiom{\"failed\"} is returned."))) 
-((|JacobiIdentity| . T) (|NullSquare| . T) (-4514 . T) (-4513 . T)) 
+((|JacobiIdentity| . T) (|NullSquare| . T) (-4516 . T) (-4515 . T)) 
 ((|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-172)))) 
 (-657 A S) 
 ((|constructor| (NIL "A list aggregate is a model for a linked list data structure. A linked list is a versatile data structure. Insertion and deletion are efficient and searching is a linear operation.")) (|list| (($ |#2|) "\\spad{list(x)} returns the list of one element \\spad{x}."))) 
@@ -2562,7 +2562,7 @@ NIL
 NIL 
 (-658 S) 
 ((|constructor| (NIL "A list aggregate is a model for a linked list data structure. A linked list is a versatile data structure. Insertion and deletion are efficient and searching is a linear operation.")) (|list| (($ |#1|) "\\spad{list(x)} returns the list of one element \\spad{x}."))) 
-((-4520 . T) (-4519 . T) (-3973 . T)) 
+((-4522 . T) (-4521 . T) (-3973 . T)) 
 NIL 
 (-659 -1478) 
 ((|constructor| (NIL "This package solves linear system in the matrix form \\spad{AX = B}. It is essentially a particular instantiation of the package \\spadtype{LinearSystemMatrixPackage} for Matrix and Vector. This package\\spad{'s} existence makes it easier to use \\spadfun{solve} in the AXIOM interpreter.")) (|rank| (((|NonNegativeInteger|) (|Matrix| |#1|) (|Vector| |#1|)) "\\spad{rank(A,{}B)} computes the rank of the complete matrix \\spad{(A|B)} of the linear system \\spad{AX = B}.")) (|hasSolution?| (((|Boolean|) (|Matrix| |#1|) (|Vector| |#1|)) "\\spad{hasSolution?(A,{}B)} tests if the linear system \\spad{AX = B} has a solution.")) (|particularSolution| (((|Union| (|Vector| |#1|) "failed") (|Matrix| |#1|) (|Vector| |#1|)) "\\spad{particularSolution(A,{}B)} finds a particular solution of the linear system \\spad{AX = B}.")) (|solve| (((|List| (|Record| (|:| |particular| (|Union| (|Vector| |#1|) "failed")) (|:| |basis| (|List| (|Vector| |#1|))))) (|List| (|List| |#1|)) (|List| (|Vector| |#1|))) "\\spad{solve(A,{}LB)} finds a particular soln of the systems \\spad{AX = B} and a basis of the associated homogeneous systems \\spad{AX = 0} where \\spad{B} varies in the list of column vectors \\spad{LB}.") (((|List| (|Record| (|:| |particular| (|Union| (|Vector| |#1|) "failed")) (|:| |basis| (|List| (|Vector| |#1|))))) (|Matrix| |#1|) (|List| (|Vector| |#1|))) "\\spad{solve(A,{}LB)} finds a particular soln of the systems \\spad{AX = B} and a basis of the associated homogeneous systems \\spad{AX = 0} where \\spad{B} varies in the list of column vectors \\spad{LB}.") (((|Record| (|:| |particular| (|Union| (|Vector| |#1|) "failed")) (|:| |basis| (|List| (|Vector| |#1|)))) (|List| (|List| |#1|)) (|Vector| |#1|)) "\\spad{solve(A,{}B)} finds a particular solution of the system \\spad{AX = B} and a basis of the associated homogeneous system \\spad{AX = 0}.") (((|Record| (|:| |particular| (|Union| (|Vector| |#1|) "failed")) (|:| |basis| (|List| (|Vector| |#1|)))) (|Matrix| |#1|) (|Vector| |#1|)) "\\spad{solve(A,{}B)} finds a particular solution of the system \\spad{AX = B} and a basis of the associated homogeneous system \\spad{AX = 0}."))) 
@@ -2578,8 +2578,8 @@ NIL
 NIL 
 (-662 |n| R) 
 ((|constructor| (NIL "LieSquareMatrix(\\spad{n},{}\\spad{R}) implements the Lie algebra of the \\spad{n} by \\spad{n} matrices over the commutative ring \\spad{R}. The Lie bracket (commutator) of the algebra is given by\\spad{\\br} \\spad{a*b := (a *\\$SQMATRIX(n,{}R) b - b *\\$SQMATRIX(n,{}R) a)},{}\\spad{\\br} where \\spadfun{*\\$SQMATRIX(\\spad{n},{}\\spad{R})} is the usual matrix multiplication."))) 
-((-4516 . T) (-4519 . T) (-4513 . T) (-4514 . T)) 
-((|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-225))) (|HasAttribute| |#2| (QUOTE (-4521 "*"))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-301))) (|HasCategory| |#2| (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-558))) (-2198 (|HasAttribute| |#2| (QUOTE (-4521 "*"))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090))))) (|HasCategory| |#2| (QUOTE (-172)))) 
+((-4518 . T) (-4521 . T) (-4515 . T) (-4516 . T)) 
+((|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-225))) (|HasAttribute| |#2| (QUOTE (-4523 "*"))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-301))) (|HasCategory| |#2| (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-558))) (-2199 (|HasAttribute| |#2| (QUOTE (-4523 "*"))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090))))) (|HasCategory| |#2| (QUOTE (-172)))) 
 (-663 |VarSet|) 
 ((|constructor| (NIL "Lyndon words over arbitrary (ordered) symbols: see Free Lie Algebras by \\spad{C}. Reutenauer (Oxford science publications). A Lyndon word is a word which is smaller than any of its right factors \\spad{w}.\\spad{r}.\\spad{t}. the pure lexicographical ordering. If \\axiom{a} and \\axiom{\\spad{b}} are two Lyndon words such that \\axiom{a < \\spad{b}} holds \\spad{w}.\\spad{r}.\\spad{t} lexicographical ordering then \\axiom{a*b} is a Lyndon word. Parenthesized Lyndon words can be generated from symbols by using the following rule:\\spad{\\br} \\axiom{[[a,{}\\spad{b}],{}\\spad{c}]} is a Lyndon word iff \\axiom{a*b < \\spad{c} \\spad{<=} \\spad{b}} holds.\\spad{\\br} Lyndon words are internally represented by binary trees using the \\spadtype{Magma} domain constructor. Two ordering are provided: lexicographic and length-lexicographic.")) (|LyndonWordsList| (((|List| $) (|List| |#1|) (|PositiveInteger|)) "\\axiom{LyndonWordsList(\\spad{vl},{} \\spad{n})} returns the list of Lyndon words over the alphabet \\axiom{\\spad{vl}},{} up to order \\axiom{\\spad{n}}.")) (|LyndonWordsList1| (((|OneDimensionalArray| (|List| $)) (|List| |#1|) (|PositiveInteger|)) "\\axiom{\\spad{LyndonWordsList1}(\\spad{vl},{} \\spad{n})} returns an array of lists of Lyndon words over the alphabet \\axiom{\\spad{vl}},{} up to order \\axiom{\\spad{n}}.")) (|varList| (((|List| |#1|) $) "\\axiom{varList(\\spad{x})} returns the list of distinct entries of \\axiom{\\spad{x}}.")) (|lyndonIfCan| (((|Union| $ "failed") (|OrderedFreeMonoid| |#1|)) "\\axiom{lyndonIfCan(\\spad{w})} convert \\axiom{\\spad{w}} into a Lyndon word.")) (|lyndon| (($ (|OrderedFreeMonoid| |#1|)) "\\axiom{lyndon(\\spad{w})} convert \\axiom{\\spad{w}} into a Lyndon word,{} error if \\axiom{\\spad{w}} is not a Lyndon word.")) (|lyndon?| (((|Boolean|) (|OrderedFreeMonoid| |#1|)) "\\axiom{lyndon?(\\spad{w})} test if \\axiom{\\spad{w}} is a Lyndon word.")) (|factor| (((|List| $) (|OrderedFreeMonoid| |#1|)) "\\axiom{factor(\\spad{x})} returns the decreasing factorization into Lyndon words.")) (|coerce| (((|Magma| |#1|) $) "\\axiom{coerce(\\spad{x})} returns the element of \\axiomType{Magma}(VarSet) corresponding to \\axiom{\\spad{x}}.") (((|OrderedFreeMonoid| |#1|) $) "\\axiom{coerce(\\spad{x})} returns the element of \\axiomType{OrderedFreeMonoid}(VarSet) corresponding to \\axiom{\\spad{x}}.")) (|lexico| (((|Boolean|) $ $) "\\axiom{lexico(\\spad{x},{}\\spad{y})} returns \\axiom{\\spad{true}} iff \\axiom{\\spad{x}} is smaller than \\axiom{\\spad{y}} \\spad{w}.\\spad{r}.\\spad{t}. the lexicographical ordering induced by \\axiom{VarSet}.")) (|length| (((|PositiveInteger|) $) "\\axiom{length(\\spad{x})} returns the number of entries in \\axiom{\\spad{x}}.")) (|right| (($ $) "\\axiom{right(\\spad{x})} returns right subtree of \\axiom{\\spad{x}} or error if retractable?(\\spad{x}) is \\spad{true}.")) (|left| (($ $) "\\axiom{left(\\spad{x})} returns left subtree of \\axiom{\\spad{x}} or error if retractable?(\\spad{x}) is \\spad{true}.")) (|retractable?| (((|Boolean|) $) "\\axiom{retractable?(\\spad{x})} tests if \\axiom{\\spad{x}} is a tree with only one entry."))) 
 NIL 
@@ -2595,7 +2595,7 @@ NIL
 (-666 R) 
 ((|constructor| (NIL "This domain represents three dimensional matrices over a general object type")) (|matrixDimensions| (((|Vector| (|NonNegativeInteger|)) $) "\\spad{matrixDimensions(x)} returns the dimensions of a matrix")) (|matrixConcat3D| (($ (|Symbol|) $ $) "\\spad{matrixConcat3D(s,{}x,{}y)} concatenates two 3-\\spad{D} matrices along a specified axis")) (|coerce| (((|PrimitiveArray| (|PrimitiveArray| (|PrimitiveArray| |#1|))) $) "\\spad{coerce(x)} moves from the domain to the representation type") (($ (|PrimitiveArray| (|PrimitiveArray| (|PrimitiveArray| |#1|)))) "\\spad{coerce(p)} moves from the representation type (PrimitiveArray PrimitiveArray PrimitiveArray \\spad{R}) to the domain")) (|setelt!| ((|#1| $ (|NonNegativeInteger|) (|NonNegativeInteger|) (|NonNegativeInteger|) |#1|) "\\spad{setelt!(x,{}i,{}j,{}k,{}s)} (or \\spad{x}.\\spad{i}.\\spad{j}.k:=s) sets a specific element of the array to some value of type \\spad{R}")) (|elt| ((|#1| $ (|NonNegativeInteger|) (|NonNegativeInteger|) (|NonNegativeInteger|)) "\\spad{elt(x,{}i,{}j,{}k)} extract an element from the matrix \\spad{x}")) (|construct| (($ (|List| (|List| (|List| |#1|)))) "\\spad{construct(lll)} creates a 3-\\spad{D} matrix from a List List List \\spad{R} \\spad{lll}")) (|plus| (($ $ $) "\\spad{plus(x,{}y)} adds two matrices,{} term by term we note that they must be the same size")) (|identityMatrix| (($ (|NonNegativeInteger|)) "\\spad{identityMatrix(n)} create an identity matrix we note that this must be square")) (|zeroMatrix| (($ (|NonNegativeInteger|) (|NonNegativeInteger|) (|NonNegativeInteger|)) "\\spad{zeroMatrix(i,{}j,{}k)} create a matrix with all zero terms"))) 
 NIL 
-((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (QUOTE (-1047))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1047)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
+((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (QUOTE (-1047))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1047)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
 (-667 |VarSet|) 
 ((|constructor| (NIL "This type is the basic representation of parenthesized words (binary trees over arbitrary symbols) useful in \\spadtype{LiePolynomial}.")) (|varList| (((|List| |#1|) $) "\\axiom{varList(\\spad{x})} returns the list of distinct entries of \\axiom{\\spad{x}}.")) (|right| (($ $) "\\axiom{right(\\spad{x})} returns right subtree of \\axiom{\\spad{x}} or error if retractable?(\\spad{x}) is \\spad{true}.")) (|retractable?| (((|Boolean|) $) "\\axiom{retractable?(\\spad{x})} tests if \\axiom{\\spad{x}} is a tree with only one entry.")) (|rest| (($ $) "\\axiom{rest(\\spad{x})} return \\axiom{\\spad{x}} without the first entry or error if retractable?(\\spad{x}) is \\spad{true}.")) (|mirror| (($ $) "\\axiom{mirror(\\spad{x})} returns the reversed word of \\axiom{\\spad{x}}. That is \\axiom{\\spad{x}} itself if retractable?(\\spad{x}) is \\spad{true} and \\axiom{mirror(\\spad{z}) * mirror(\\spad{y})} if \\axiom{\\spad{x}} is \\axiom{\\spad{y*z}}.")) (|lexico| (((|Boolean|) $ $) "\\axiom{lexico(\\spad{x},{}\\spad{y})} returns \\axiom{\\spad{true}} iff \\axiom{\\spad{x}} is smaller than \\axiom{\\spad{y}} \\spad{w}.\\spad{r}.\\spad{t}. the lexicographical ordering induced by \\axiom{VarSet}. \\spad{N}.\\spad{B}. This operation does not take into account the tree structure of its arguments. Thus this is not a total ordering.")) (|length| (((|PositiveInteger|) $) "\\axiom{length(\\spad{x})} returns the number of entries in \\axiom{\\spad{x}}.")) (|left| (($ $) "\\axiom{left(\\spad{x})} returns left subtree of \\axiom{\\spad{x}} or error if retractable?(\\spad{x}) is \\spad{true}.")) (|first| ((|#1| $) "\\axiom{first(\\spad{x})} returns the first entry of the tree \\axiom{\\spad{x}}.")) (|coerce| (((|OrderedFreeMonoid| |#1|) $) "\\indented{1}{\\axiom{coerce(\\spad{x})} returns the element of} \\axiomType{OrderedFreeMonoid}(VarSet) \\indented{1}{corresponding to \\axiom{\\spad{x}} by removing parentheses.}")) (* (($ $ $) "\\axiom{x*y} returns the tree \\axiom{[\\spad{x},{}\\spad{y}]}."))) 
 NIL 
@@ -2635,10 +2635,10 @@ NIL
 (-676 S R |Row| |Col|) 
 ((|constructor| (NIL "\\spadtype{MatrixCategory} is a general matrix category which allows different representations and indexing schemes. Rows and columns may be extracted with rows returned as objects of type Row and colums returned as objects of type Col. A domain belonging to this category will be shallowly mutable. The index of the 'first' row may be obtained by calling the function \\spadfun{minRowIndex}. The index of the 'first' column may be obtained by calling the function \\spadfun{minColIndex}. The index of the first element of a Row is the same as the index of the first column in a matrix and vice versa.")) (|inverse| (((|Union| $ "failed") $) "\\indented{1}{\\spad{inverse(m)} returns the inverse of the matrix \\spad{m}.} \\indented{1}{If the matrix is not invertible,{} \"failed\" is returned.} \\indented{1}{Error: if the matrix is not square.} \\blankline \\spad{X} inverse matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]")) (|pfaffian| ((|#2| $) "\\indented{1}{\\spad{pfaffian(m)} returns the Pfaffian of the matrix \\spad{m}.} \\indented{1}{Error if the matrix is not antisymmetric} \\blankline \\spad{X} pfaffian [[0,{}1,{}0,{}0],{}[\\spad{-1},{}0,{}0,{}0],{}[0,{}0,{}0,{}1],{}[0,{}0,{}\\spad{-1},{}0]]")) (|minordet| ((|#2| $) "\\indented{1}{\\spad{minordet(m)} computes the determinant of the matrix \\spad{m} using} \\indented{1}{minors. Error: if the matrix is not square.} \\blankline \\spad{X} minordet matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]")) (|determinant| ((|#2| $) "\\indented{1}{\\spad{determinant(m)} returns the determinant of the matrix \\spad{m}.} \\indented{1}{Error: if the matrix is not square.} \\blankline \\spad{X} determinant matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]")) (|nullSpace| (((|List| |#4|) $) "\\indented{1}{\\spad{nullSpace(m)} returns a basis for the null space of} \\indented{1}{the matrix \\spad{m}.} \\blankline \\spad{X} nullSpace matrix [[1,{}2,{}3],{}[4,{}5,{}6],{}[7,{}8,{}9]]")) (|nullity| (((|NonNegativeInteger|) $) "\\indented{1}{\\spad{nullity(m)} returns the nullity of the matrix \\spad{m}. This is} \\indented{1}{the dimension of the null space of the matrix \\spad{m}.} \\blankline \\spad{X} nullity matrix [[1,{}2,{}3],{}[4,{}5,{}6],{}[7,{}8,{}9]]")) (|rank| (((|NonNegativeInteger|) $) "\\indented{1}{\\spad{rank(m)} returns the rank of the matrix \\spad{m}.} \\blankline \\spad{X} rank matrix [[1,{}2,{}3],{}[4,{}5,{}6],{}[7,{}8,{}9]]")) (|columnSpace| (((|List| |#4|) $) "\\indented{1}{\\spad{columnSpace(m)} returns a sublist of columns of the matrix \\spad{m}} \\indented{1}{forming a basis of its column space} \\blankline \\spad{X} columnSpace matrix [[1,{}2,{}3],{}[4,{}5,{}6],{}[7,{}8,{}9],{}[1,{}1,{}1]]")) (|rowEchelon| (($ $) "\\indented{1}{\\spad{rowEchelon(m)} returns the row echelon form of the matrix \\spad{m}.} \\blankline \\spad{X} rowEchelon matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]")) (/ (($ $ |#2|) "\\indented{1}{\\spad{m/r} divides the elements of \\spad{m} by \\spad{r}. Error: if \\spad{r = 0}.} \\blankline \\spad{X} m:=matrix [[2**i for \\spad{i} in 2..4] for \\spad{j} in 1..5] \\spad{X} \\spad{m/4}")) (|exquo| (((|Union| $ "failed") $ |#2|) "\\indented{1}{\\spad{exquo(m,{}r)} computes the exact quotient of the elements} \\indented{1}{of \\spad{m} by \\spad{r},{} returning \\axiom{\"failed\"} if this is not possible.} \\blankline \\spad{X} m:=matrix [[2**i for \\spad{i} in 2..4] for \\spad{j} in 1..5] \\spad{X} exquo(\\spad{m},{}2)")) (** (($ $ (|Integer|)) "\\indented{1}{\\spad{m**n} computes an integral power of the matrix \\spad{m}.} \\indented{1}{Error: if matrix is not square or if the matrix} \\indented{1}{is square but not invertible.} \\blankline \\spad{X} (matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]) \\spad{**} 2") (($ $ (|NonNegativeInteger|)) "\\indented{1}{\\spad{x ** n} computes a non-negative integral power of the matrix \\spad{x}.} \\indented{1}{Error: if the matrix is not square.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} \\spad{m**3}")) (* ((|#3| |#3| $) "\\indented{1}{\\spad{r * x} is the product of the row vector \\spad{r} and the matrix \\spad{x}.} \\indented{1}{Error: if the dimensions are incompatible.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} r:=transpose([1,{}2,{}3,{}4,{}5])@Matrix(INT) \\spad{X} \\spad{r*m}") ((|#4| $ |#4|) "\\indented{1}{\\spad{x * c} is the product of the matrix \\spad{x} and the column vector \\spad{c}.} \\indented{1}{Error: if the dimensions are incompatible.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} c:=coerce([1,{}2,{}3,{}4,{}5])@Matrix(INT) \\spad{X} \\spad{m*c}") (($ (|Integer|) $) "\\indented{1}{\\spad{n * x} is an integer multiple.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} 3*m") (($ $ |#2|) "\\indented{1}{\\spad{x * r} is the right scalar multiple of the scalar \\spad{r} and the} \\indented{1}{matrix \\spad{x}.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} \\spad{m*1/3}") (($ |#2| $) "\\indented{1}{\\spad{r*x} is the left scalar multiple of the scalar \\spad{r} and the} \\indented{1}{matrix \\spad{x}.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} 1/3*m") (($ $ $) "\\indented{1}{\\spad{x * y} is the product of the matrices \\spad{x} and \\spad{y}.} \\indented{1}{Error: if the dimensions are incompatible.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} \\spad{m*m}")) (- (($ $) "\\indented{1}{\\spad{-x} returns the negative of the matrix \\spad{x}.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} \\spad{-m}") (($ $ $) "\\indented{1}{\\spad{x - y} is the difference of the matrices \\spad{x} and \\spad{y}.} \\indented{1}{Error: if the dimensions are incompatible.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} \\spad{m}-\\spad{m}")) (+ (($ $ $) "\\indented{1}{\\spad{x + y} is the sum of the matrices \\spad{x} and \\spad{y}.} \\indented{1}{Error: if the dimensions are incompatible.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} \\spad{m+m}")) (|setsubMatrix!| (($ $ (|Integer|) (|Integer|) $) "\\indented{1}{\\spad{setsubMatrix(x,{}i1,{}j1,{}y)} destructively alters the} \\indented{1}{matrix \\spad{x}. Here \\spad{x(i,{}j)} is set to \\spad{y(i-i1+1,{}j-j1+1)} for} \\indented{1}{\\spad{i = i1,{}...,{}i1-1+nrows y} and \\spad{j = j1,{}...,{}j1-1+ncols y}.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} setsubMatrix!(\\spad{m},{}2,{}2,{}matrix [[3,{}3],{}[3,{}3]])")) (|subMatrix| (($ $ (|Integer|) (|Integer|) (|Integer|) (|Integer|)) "\\indented{1}{\\spad{subMatrix(x,{}i1,{}i2,{}j1,{}j2)} extracts the submatrix} \\indented{1}{\\spad{[x(i,{}j)]} where the index \\spad{i} ranges from \\spad{i1} to \\spad{i2}} \\indented{1}{and the index \\spad{j} ranges from \\spad{j1} to \\spad{j2}.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} subMatrix(\\spad{m},{}1,{}3,{}2,{}4)")) (|swapColumns!| (($ $ (|Integer|) (|Integer|)) "\\indented{1}{\\spad{swapColumns!(m,{}i,{}j)} interchanges the \\spad{i}th and \\spad{j}th} \\indented{1}{columns of \\spad{m}. This destructively alters the matrix.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} swapColumns!(\\spad{m},{}2,{}4)")) (|swapRows!| (($ $ (|Integer|) (|Integer|)) "\\indented{1}{\\spad{swapRows!(m,{}i,{}j)} interchanges the \\spad{i}th and \\spad{j}th} \\indented{1}{rows of \\spad{m}. This destructively alters the matrix.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} swapRows!(\\spad{m},{}2,{}4)")) (|setelt| (($ $ (|List| (|Integer|)) (|List| (|Integer|)) $) "\\indented{1}{\\spad{setelt(x,{}rowList,{}colList,{}y)} destructively alters the matrix \\spad{x}.} \\indented{1}{If \\spad{y} is \\spad{m}-by-\\spad{n},{} \\spad{rowList = [i<1>,{}i<2>,{}...,{}i<m>]}} \\indented{1}{and \\spad{colList = [j<1>,{}j<2>,{}...,{}j<n>]},{} then \\spad{x(i<k>,{}j<l>)}} \\indented{1}{is set to \\spad{y(k,{}l)} for \\spad{k = 1,{}...,{}m} and \\spad{l = 1,{}...,{}n}} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} setelt(\\spad{m},{}3,{}3,{}10)")) (|elt| (($ $ (|List| (|Integer|)) (|List| (|Integer|))) "\\indented{1}{\\spad{elt(x,{}rowList,{}colList)} returns an \\spad{m}-by-\\spad{n} matrix consisting} \\indented{1}{of elements of \\spad{x},{} where \\spad{m = \\# rowList} and \\spad{n = \\# colList}} \\indented{1}{If \\spad{rowList = [i<1>,{}i<2>,{}...,{}i<m>]} and \\spad{colList =} \\indented{1}{[j<1>,{}j<2>,{}...,{}j<n>]},{} then the \\spad{(k,{}l)}th entry of} \\indented{1}{\\spad{elt(x,{}rowList,{}colList)} is \\spad{x(i<k>,{}j<l>)}.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} elt(\\spad{m},{}3,{}3)")) (|listOfLists| (((|List| (|List| |#2|)) $) "\\indented{1}{\\spad{listOfLists(m)} returns the rows of the matrix \\spad{m} as a list} \\indented{1}{of lists.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} listOfLists \\spad{m}")) (|vertConcat| (($ $ $) "\\indented{1}{\\spad{vertConcat(x,{}y)} vertically concatenates two matrices with an} \\indented{1}{equal number of columns. The entries of \\spad{y} appear below} \\indented{1}{of the entries of \\spad{x}.\\space{2}Error: if the matrices} \\indented{1}{do not have the same number of columns.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} vertConcat(\\spad{m},{}\\spad{m})")) (|horizConcat| (($ $ $) "\\indented{1}{\\spad{horizConcat(x,{}y)} horizontally concatenates two matrices with} \\indented{1}{an equal number of rows. The entries of \\spad{y} appear to the right} \\indented{1}{of the entries of \\spad{x}.\\space{2}Error: if the matrices} \\indented{1}{do not have the same number of rows.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} horizConcat(\\spad{m},{}\\spad{m})")) (|squareTop| (($ $) "\\indented{1}{\\spad{squareTop(m)} returns an \\spad{n}-by-\\spad{n} matrix consisting of the first} \\indented{1}{\\spad{n} rows of the \\spad{m}-by-\\spad{n} matrix \\spad{m}. Error: if} \\indented{1}{\\spad{m < n}.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..2] for \\spad{j} in 1..5] \\spad{X} squareTop \\spad{m}")) (|transpose| (($ $) "\\indented{1}{\\spad{transpose(m)} returns the transpose of the matrix \\spad{m}.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} transpose \\spad{m}") (($ |#3|) "\\indented{1}{\\spad{transpose(r)} converts the row \\spad{r} to a row matrix.} \\blankline \\spad{X} transpose([1,{}2,{}3])@Matrix(INT)")) (|coerce| (($ |#4|) "\\indented{1}{\\spad{coerce(col)} converts the column col to a column matrix.} \\blankline \\spad{X} coerce([1,{}2,{}3])@Matrix(INT)")) (|diagonalMatrix| (($ (|List| $)) "\\indented{1}{\\spad{diagonalMatrix([m1,{}...,{}mk])} creates a block diagonal matrix} \\indented{1}{\\spad{M} with block matrices \\spad{m1},{}...,{}\\spad{mk} down the diagonal,{}} \\indented{1}{with 0 block matrices elsewhere.} \\indented{1}{More precisly: if \\spad{\\spad{ri} := nrows \\spad{mi}},{} \\spad{\\spad{ci} := ncols \\spad{mi}},{}} \\indented{1}{then \\spad{m} is an (\\spad{r1+}..\\spad{+rk}) by (\\spad{c1+}..\\spad{+ck}) - matrix\\space{2}with entries} \\indented{1}{\\spad{m.i.j = ml.(i-r1-..-r(l-1)).(j-n1-..-n(l-1))},{} if} \\indented{1}{\\spad{(r1+..+r(l-1)) < i <= r1+..+rl} and} \\indented{1}{\\spad{(c1+..+c(l-1)) < i <= c1+..+cl},{}} \\indented{1}{\\spad{m.i.j} = 0\\space{2}otherwise.} \\blankline \\spad{X} diagonalMatrix [matrix [[1,{}2],{}[3,{}4]],{} matrix [[4,{}5],{}[6,{}7]]]") (($ (|List| |#2|)) "\\indented{1}{\\spad{diagonalMatrix(l)} returns a diagonal matrix with the elements} \\indented{1}{of \\spad{l} on the diagonal.} \\blankline \\spad{X} diagonalMatrix [1,{}2,{}3]")) (|scalarMatrix| (($ (|NonNegativeInteger|) |#2|) "\\indented{1}{\\spad{scalarMatrix(n,{}r)} returns an \\spad{n}-by-\\spad{n} matrix with \\spad{r}\\spad{'s} on the} \\indented{1}{diagonal and zeroes elsewhere.} \\blankline \\spad{X} z:Matrix(INT):=scalarMatrix(3,{}5)")) (|matrix| (($ (|List| (|List| |#2|))) "\\indented{1}{\\spad{matrix(l)} converts the list of lists \\spad{l} to a matrix,{} where the} \\indented{1}{list of lists is viewed as a list of the rows of the matrix.} \\blankline \\spad{X} matrix [[1,{}2,{}3],{}[4,{}5,{}6],{}[7,{}8,{}9],{}[1,{}1,{}1]]")) (|zero| (($ (|NonNegativeInteger|) (|NonNegativeInteger|)) "\\indented{1}{\\spad{zero(m,{}n)} returns an \\spad{m}-by-\\spad{n} zero matrix.} \\blankline \\spad{X} z:Matrix(INT):=zero(3,{}3)")) (|antisymmetric?| (((|Boolean|) $) "\\indented{1}{\\spad{antisymmetric?(m)} returns \\spad{true} if the matrix \\spad{m} is square and} \\indented{1}{antisymmetric (\\spadignore{i.e.} \\spad{m[i,{}j] = -m[j,{}i]} for all \\spad{i} and \\spad{j})} \\indented{1}{and \\spad{false} otherwise.} \\blankline \\spad{X} antisymmetric? matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]")) (|symmetric?| (((|Boolean|) $) "\\indented{1}{\\spad{symmetric?(m)} returns \\spad{true} if the matrix \\spad{m} is square and} \\indented{1}{symmetric (\\spadignore{i.e.} \\spad{m[i,{}j] = m[j,{}i]} for all \\spad{i} and \\spad{j}) and \\spad{false}} \\indented{1}{otherwise.} \\blankline \\spad{X} symmetric? matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]")) (|diagonal?| (((|Boolean|) $) "\\indented{1}{\\spad{diagonal?(m)} returns \\spad{true} if the matrix \\spad{m} is square and} \\indented{1}{diagonal (\\spadignore{i.e.} all entries of \\spad{m} not on the diagonal are zero) and} \\indented{1}{\\spad{false} otherwise.} \\blankline \\spad{X} diagonal? matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]")) (|square?| (((|Boolean|) $) "\\indented{1}{\\spad{square?(m)} returns \\spad{true} if \\spad{m} is a square matrix} \\indented{1}{(if \\spad{m} has the same number of rows as columns) and \\spad{false} otherwise.} \\blankline \\spad{X} square matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]")) (|finiteAggregate| ((|attribute|) "matrices are finite")) (|shallowlyMutable| ((|attribute|) "One may destructively alter matrices"))) 
 NIL 
-((|HasCategory| |#2| (QUOTE (-172))) (|HasAttribute| |#2| (QUOTE (-4521 "*"))) (|HasCategory| |#2| (QUOTE (-301))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-558)))) 
+((|HasCategory| |#2| (QUOTE (-172))) (|HasAttribute| |#2| (QUOTE (-4523 "*"))) (|HasCategory| |#2| (QUOTE (-301))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-558)))) 
 (-677 R |Row| |Col|) 
 ((|constructor| (NIL "\\spadtype{MatrixCategory} is a general matrix category which allows different representations and indexing schemes. Rows and columns may be extracted with rows returned as objects of type Row and colums returned as objects of type Col. A domain belonging to this category will be shallowly mutable. The index of the 'first' row may be obtained by calling the function \\spadfun{minRowIndex}. The index of the 'first' column may be obtained by calling the function \\spadfun{minColIndex}. The index of the first element of a Row is the same as the index of the first column in a matrix and vice versa.")) (|inverse| (((|Union| $ "failed") $) "\\indented{1}{\\spad{inverse(m)} returns the inverse of the matrix \\spad{m}.} \\indented{1}{If the matrix is not invertible,{} \"failed\" is returned.} \\indented{1}{Error: if the matrix is not square.} \\blankline \\spad{X} inverse matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]")) (|pfaffian| ((|#1| $) "\\indented{1}{\\spad{pfaffian(m)} returns the Pfaffian of the matrix \\spad{m}.} \\indented{1}{Error if the matrix is not antisymmetric} \\blankline \\spad{X} pfaffian [[0,{}1,{}0,{}0],{}[\\spad{-1},{}0,{}0,{}0],{}[0,{}0,{}0,{}1],{}[0,{}0,{}\\spad{-1},{}0]]")) (|minordet| ((|#1| $) "\\indented{1}{\\spad{minordet(m)} computes the determinant of the matrix \\spad{m} using} \\indented{1}{minors. Error: if the matrix is not square.} \\blankline \\spad{X} minordet matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]")) (|determinant| ((|#1| $) "\\indented{1}{\\spad{determinant(m)} returns the determinant of the matrix \\spad{m}.} \\indented{1}{Error: if the matrix is not square.} \\blankline \\spad{X} determinant matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]")) (|nullSpace| (((|List| |#3|) $) "\\indented{1}{\\spad{nullSpace(m)} returns a basis for the null space of} \\indented{1}{the matrix \\spad{m}.} \\blankline \\spad{X} nullSpace matrix [[1,{}2,{}3],{}[4,{}5,{}6],{}[7,{}8,{}9]]")) (|nullity| (((|NonNegativeInteger|) $) "\\indented{1}{\\spad{nullity(m)} returns the nullity of the matrix \\spad{m}. This is} \\indented{1}{the dimension of the null space of the matrix \\spad{m}.} \\blankline \\spad{X} nullity matrix [[1,{}2,{}3],{}[4,{}5,{}6],{}[7,{}8,{}9]]")) (|rank| (((|NonNegativeInteger|) $) "\\indented{1}{\\spad{rank(m)} returns the rank of the matrix \\spad{m}.} \\blankline \\spad{X} rank matrix [[1,{}2,{}3],{}[4,{}5,{}6],{}[7,{}8,{}9]]")) (|columnSpace| (((|List| |#3|) $) "\\indented{1}{\\spad{columnSpace(m)} returns a sublist of columns of the matrix \\spad{m}} \\indented{1}{forming a basis of its column space} \\blankline \\spad{X} columnSpace matrix [[1,{}2,{}3],{}[4,{}5,{}6],{}[7,{}8,{}9],{}[1,{}1,{}1]]")) (|rowEchelon| (($ $) "\\indented{1}{\\spad{rowEchelon(m)} returns the row echelon form of the matrix \\spad{m}.} \\blankline \\spad{X} rowEchelon matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]")) (/ (($ $ |#1|) "\\indented{1}{\\spad{m/r} divides the elements of \\spad{m} by \\spad{r}. Error: if \\spad{r = 0}.} \\blankline \\spad{X} m:=matrix [[2**i for \\spad{i} in 2..4] for \\spad{j} in 1..5] \\spad{X} \\spad{m/4}")) (|exquo| (((|Union| $ "failed") $ |#1|) "\\indented{1}{\\spad{exquo(m,{}r)} computes the exact quotient of the elements} \\indented{1}{of \\spad{m} by \\spad{r},{} returning \\axiom{\"failed\"} if this is not possible.} \\blankline \\spad{X} m:=matrix [[2**i for \\spad{i} in 2..4] for \\spad{j} in 1..5] \\spad{X} exquo(\\spad{m},{}2)")) (** (($ $ (|Integer|)) "\\indented{1}{\\spad{m**n} computes an integral power of the matrix \\spad{m}.} \\indented{1}{Error: if matrix is not square or if the matrix} \\indented{1}{is square but not invertible.} \\blankline \\spad{X} (matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]) \\spad{**} 2") (($ $ (|NonNegativeInteger|)) "\\indented{1}{\\spad{x ** n} computes a non-negative integral power of the matrix \\spad{x}.} \\indented{1}{Error: if the matrix is not square.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} \\spad{m**3}")) (* ((|#2| |#2| $) "\\indented{1}{\\spad{r * x} is the product of the row vector \\spad{r} and the matrix \\spad{x}.} \\indented{1}{Error: if the dimensions are incompatible.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} r:=transpose([1,{}2,{}3,{}4,{}5])@Matrix(INT) \\spad{X} \\spad{r*m}") ((|#3| $ |#3|) "\\indented{1}{\\spad{x * c} is the product of the matrix \\spad{x} and the column vector \\spad{c}.} \\indented{1}{Error: if the dimensions are incompatible.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} c:=coerce([1,{}2,{}3,{}4,{}5])@Matrix(INT) \\spad{X} \\spad{m*c}") (($ (|Integer|) $) "\\indented{1}{\\spad{n * x} is an integer multiple.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} 3*m") (($ $ |#1|) "\\indented{1}{\\spad{x * r} is the right scalar multiple of the scalar \\spad{r} and the} \\indented{1}{matrix \\spad{x}.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} \\spad{m*1/3}") (($ |#1| $) "\\indented{1}{\\spad{r*x} is the left scalar multiple of the scalar \\spad{r} and the} \\indented{1}{matrix \\spad{x}.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} 1/3*m") (($ $ $) "\\indented{1}{\\spad{x * y} is the product of the matrices \\spad{x} and \\spad{y}.} \\indented{1}{Error: if the dimensions are incompatible.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} \\spad{m*m}")) (- (($ $) "\\indented{1}{\\spad{-x} returns the negative of the matrix \\spad{x}.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} \\spad{-m}") (($ $ $) "\\indented{1}{\\spad{x - y} is the difference of the matrices \\spad{x} and \\spad{y}.} \\indented{1}{Error: if the dimensions are incompatible.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} \\spad{m}-\\spad{m}")) (+ (($ $ $) "\\indented{1}{\\spad{x + y} is the sum of the matrices \\spad{x} and \\spad{y}.} \\indented{1}{Error: if the dimensions are incompatible.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} \\spad{m+m}")) (|setsubMatrix!| (($ $ (|Integer|) (|Integer|) $) "\\indented{1}{\\spad{setsubMatrix(x,{}i1,{}j1,{}y)} destructively alters the} \\indented{1}{matrix \\spad{x}. Here \\spad{x(i,{}j)} is set to \\spad{y(i-i1+1,{}j-j1+1)} for} \\indented{1}{\\spad{i = i1,{}...,{}i1-1+nrows y} and \\spad{j = j1,{}...,{}j1-1+ncols y}.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} setsubMatrix!(\\spad{m},{}2,{}2,{}matrix [[3,{}3],{}[3,{}3]])")) (|subMatrix| (($ $ (|Integer|) (|Integer|) (|Integer|) (|Integer|)) "\\indented{1}{\\spad{subMatrix(x,{}i1,{}i2,{}j1,{}j2)} extracts the submatrix} \\indented{1}{\\spad{[x(i,{}j)]} where the index \\spad{i} ranges from \\spad{i1} to \\spad{i2}} \\indented{1}{and the index \\spad{j} ranges from \\spad{j1} to \\spad{j2}.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} subMatrix(\\spad{m},{}1,{}3,{}2,{}4)")) (|swapColumns!| (($ $ (|Integer|) (|Integer|)) "\\indented{1}{\\spad{swapColumns!(m,{}i,{}j)} interchanges the \\spad{i}th and \\spad{j}th} \\indented{1}{columns of \\spad{m}. This destructively alters the matrix.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} swapColumns!(\\spad{m},{}2,{}4)")) (|swapRows!| (($ $ (|Integer|) (|Integer|)) "\\indented{1}{\\spad{swapRows!(m,{}i,{}j)} interchanges the \\spad{i}th and \\spad{j}th} \\indented{1}{rows of \\spad{m}. This destructively alters the matrix.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} swapRows!(\\spad{m},{}2,{}4)")) (|setelt| (($ $ (|List| (|Integer|)) (|List| (|Integer|)) $) "\\indented{1}{\\spad{setelt(x,{}rowList,{}colList,{}y)} destructively alters the matrix \\spad{x}.} \\indented{1}{If \\spad{y} is \\spad{m}-by-\\spad{n},{} \\spad{rowList = [i<1>,{}i<2>,{}...,{}i<m>]}} \\indented{1}{and \\spad{colList = [j<1>,{}j<2>,{}...,{}j<n>]},{} then \\spad{x(i<k>,{}j<l>)}} \\indented{1}{is set to \\spad{y(k,{}l)} for \\spad{k = 1,{}...,{}m} and \\spad{l = 1,{}...,{}n}} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} setelt(\\spad{m},{}3,{}3,{}10)")) (|elt| (($ $ (|List| (|Integer|)) (|List| (|Integer|))) "\\indented{1}{\\spad{elt(x,{}rowList,{}colList)} returns an \\spad{m}-by-\\spad{n} matrix consisting} \\indented{1}{of elements of \\spad{x},{} where \\spad{m = \\# rowList} and \\spad{n = \\# colList}} \\indented{1}{If \\spad{rowList = [i<1>,{}i<2>,{}...,{}i<m>]} and \\spad{colList =} \\indented{1}{[j<1>,{}j<2>,{}...,{}j<n>]},{} then the \\spad{(k,{}l)}th entry of} \\indented{1}{\\spad{elt(x,{}rowList,{}colList)} is \\spad{x(i<k>,{}j<l>)}.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} elt(\\spad{m},{}3,{}3)")) (|listOfLists| (((|List| (|List| |#1|)) $) "\\indented{1}{\\spad{listOfLists(m)} returns the rows of the matrix \\spad{m} as a list} \\indented{1}{of lists.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} listOfLists \\spad{m}")) (|vertConcat| (($ $ $) "\\indented{1}{\\spad{vertConcat(x,{}y)} vertically concatenates two matrices with an} \\indented{1}{equal number of columns. The entries of \\spad{y} appear below} \\indented{1}{of the entries of \\spad{x}.\\space{2}Error: if the matrices} \\indented{1}{do not have the same number of columns.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} vertConcat(\\spad{m},{}\\spad{m})")) (|horizConcat| (($ $ $) "\\indented{1}{\\spad{horizConcat(x,{}y)} horizontally concatenates two matrices with} \\indented{1}{an equal number of rows. The entries of \\spad{y} appear to the right} \\indented{1}{of the entries of \\spad{x}.\\space{2}Error: if the matrices} \\indented{1}{do not have the same number of rows.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} horizConcat(\\spad{m},{}\\spad{m})")) (|squareTop| (($ $) "\\indented{1}{\\spad{squareTop(m)} returns an \\spad{n}-by-\\spad{n} matrix consisting of the first} \\indented{1}{\\spad{n} rows of the \\spad{m}-by-\\spad{n} matrix \\spad{m}. Error: if} \\indented{1}{\\spad{m < n}.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..2] for \\spad{j} in 1..5] \\spad{X} squareTop \\spad{m}")) (|transpose| (($ $) "\\indented{1}{\\spad{transpose(m)} returns the transpose of the matrix \\spad{m}.} \\blankline \\spad{X} m:=matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5] \\spad{X} transpose \\spad{m}") (($ |#2|) "\\indented{1}{\\spad{transpose(r)} converts the row \\spad{r} to a row matrix.} \\blankline \\spad{X} transpose([1,{}2,{}3])@Matrix(INT)")) (|coerce| (($ |#3|) "\\indented{1}{\\spad{coerce(col)} converts the column col to a column matrix.} \\blankline \\spad{X} coerce([1,{}2,{}3])@Matrix(INT)")) (|diagonalMatrix| (($ (|List| $)) "\\indented{1}{\\spad{diagonalMatrix([m1,{}...,{}mk])} creates a block diagonal matrix} \\indented{1}{\\spad{M} with block matrices \\spad{m1},{}...,{}\\spad{mk} down the diagonal,{}} \\indented{1}{with 0 block matrices elsewhere.} \\indented{1}{More precisly: if \\spad{\\spad{ri} := nrows \\spad{mi}},{} \\spad{\\spad{ci} := ncols \\spad{mi}},{}} \\indented{1}{then \\spad{m} is an (\\spad{r1+}..\\spad{+rk}) by (\\spad{c1+}..\\spad{+ck}) - matrix\\space{2}with entries} \\indented{1}{\\spad{m.i.j = ml.(i-r1-..-r(l-1)).(j-n1-..-n(l-1))},{} if} \\indented{1}{\\spad{(r1+..+r(l-1)) < i <= r1+..+rl} and} \\indented{1}{\\spad{(c1+..+c(l-1)) < i <= c1+..+cl},{}} \\indented{1}{\\spad{m.i.j} = 0\\space{2}otherwise.} \\blankline \\spad{X} diagonalMatrix [matrix [[1,{}2],{}[3,{}4]],{} matrix [[4,{}5],{}[6,{}7]]]") (($ (|List| |#1|)) "\\indented{1}{\\spad{diagonalMatrix(l)} returns a diagonal matrix with the elements} \\indented{1}{of \\spad{l} on the diagonal.} \\blankline \\spad{X} diagonalMatrix [1,{}2,{}3]")) (|scalarMatrix| (($ (|NonNegativeInteger|) |#1|) "\\indented{1}{\\spad{scalarMatrix(n,{}r)} returns an \\spad{n}-by-\\spad{n} matrix with \\spad{r}\\spad{'s} on the} \\indented{1}{diagonal and zeroes elsewhere.} \\blankline \\spad{X} z:Matrix(INT):=scalarMatrix(3,{}5)")) (|matrix| (($ (|List| (|List| |#1|))) "\\indented{1}{\\spad{matrix(l)} converts the list of lists \\spad{l} to a matrix,{} where the} \\indented{1}{list of lists is viewed as a list of the rows of the matrix.} \\blankline \\spad{X} matrix [[1,{}2,{}3],{}[4,{}5,{}6],{}[7,{}8,{}9],{}[1,{}1,{}1]]")) (|zero| (($ (|NonNegativeInteger|) (|NonNegativeInteger|)) "\\indented{1}{\\spad{zero(m,{}n)} returns an \\spad{m}-by-\\spad{n} zero matrix.} \\blankline \\spad{X} z:Matrix(INT):=zero(3,{}3)")) (|antisymmetric?| (((|Boolean|) $) "\\indented{1}{\\spad{antisymmetric?(m)} returns \\spad{true} if the matrix \\spad{m} is square and} \\indented{1}{antisymmetric (\\spadignore{i.e.} \\spad{m[i,{}j] = -m[j,{}i]} for all \\spad{i} and \\spad{j})} \\indented{1}{and \\spad{false} otherwise.} \\blankline \\spad{X} antisymmetric? matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]")) (|symmetric?| (((|Boolean|) $) "\\indented{1}{\\spad{symmetric?(m)} returns \\spad{true} if the matrix \\spad{m} is square and} \\indented{1}{symmetric (\\spadignore{i.e.} \\spad{m[i,{}j] = m[j,{}i]} for all \\spad{i} and \\spad{j}) and \\spad{false}} \\indented{1}{otherwise.} \\blankline \\spad{X} symmetric? matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]")) (|diagonal?| (((|Boolean|) $) "\\indented{1}{\\spad{diagonal?(m)} returns \\spad{true} if the matrix \\spad{m} is square and} \\indented{1}{diagonal (\\spadignore{i.e.} all entries of \\spad{m} not on the diagonal are zero) and} \\indented{1}{\\spad{false} otherwise.} \\blankline \\spad{X} diagonal? matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]")) (|square?| (((|Boolean|) $) "\\indented{1}{\\spad{square?(m)} returns \\spad{true} if \\spad{m} is a square matrix} \\indented{1}{(if \\spad{m} has the same number of rows as columns) and \\spad{false} otherwise.} \\blankline \\spad{X} square matrix [[j**i for \\spad{i} in 0..4] for \\spad{j} in 1..5]")) (|finiteAggregate| ((|attribute|) "matrices are finite")) (|shallowlyMutable| ((|attribute|) "One may destructively alter matrices"))) 
-((-4519 . T) (-4520 . T) (-3973 . T)) 
+((-4521 . T) (-4522 . T) (-3973 . T)) 
 NIL 
 (-678 R |Row| |Col| M) 
 ((|constructor| (NIL "\\spadtype{MatrixLinearAlgebraFunctions} provides functions to compute inverses and canonical forms.")) (|inverse| (((|Union| |#4| "failed") |#4|) "\\spad{inverse(m)} returns the inverse of the matrix. If the matrix is not invertible,{} \"failed\" is returned. Error: if the matrix is not square.")) (|normalizedDivide| (((|Record| (|:| |quotient| |#1|) (|:| |remainder| |#1|)) |#1| |#1|) "\\spad{normalizedDivide(n,{}d)} returns a normalized quotient and remainder such that consistently unique representatives for the residue class are chosen,{} \\spadignore{e.g.} positive remainders")) (|rowEchelon| ((|#4| |#4|) "\\spad{rowEchelon(m)} returns the row echelon form of the matrix \\spad{m}.")) (|adjoint| (((|Record| (|:| |adjMat| |#4|) (|:| |detMat| |#1|)) |#4|) "\\spad{adjoint(m)} returns the ajoint matrix of \\spad{m} (\\spadignore{i.e.} the matrix \\spad{n} such that \\spad{m*n} = determinant(\\spad{m})*id) and the detrminant of \\spad{m}.")) (|invertIfCan| (((|Union| |#4| "failed") |#4|) "\\spad{invertIfCan(m)} returns the inverse of \\spad{m} over \\spad{R}")) (|fractionFreeGauss!| ((|#4| |#4|) "\\spad{fractionFreeGauss(m)} performs the fraction free gaussian elimination on the matrix \\spad{m}.")) (|nullSpace| (((|List| |#3|) |#4|) "\\spad{nullSpace(m)} returns a basis for the null space of the matrix \\spad{m}.")) (|nullity| (((|NonNegativeInteger|) |#4|) "\\spad{nullity(m)} returns the mullity of the matrix \\spad{m}. This is the dimension of the null space of the matrix \\spad{m}.")) (|rank| (((|NonNegativeInteger|) |#4|) "\\spad{rank(m)} returns the rank of the matrix \\spad{m}.")) (|elColumn2!| ((|#4| |#4| |#1| (|Integer|) (|Integer|)) "\\spad{elColumn2!(m,{}a,{}i,{}j)} adds to column \\spad{i} a*column(\\spad{m},{}\\spad{j}) : elementary operation of second kind. (\\spad{i} \\spad{^=j})")) (|elRow2!| ((|#4| |#4| |#1| (|Integer|) (|Integer|)) "\\spad{elRow2!(m,{}a,{}i,{}j)} adds to row \\spad{i} a*row(\\spad{m},{}\\spad{j}) : elementary operation of second kind. (\\spad{i} \\spad{^=j})")) (|elRow1!| ((|#4| |#4| (|Integer|) (|Integer|)) "\\spad{elRow1!(m,{}i,{}j)} swaps rows \\spad{i} and \\spad{j} of matrix \\spad{m} : elementary operation of first kind")) (|minordet| ((|#1| |#4|) "\\spad{minordet(m)} computes the determinant of the matrix \\spad{m} using minors. Error: if the matrix is not square.")) (|determinant| ((|#1| |#4|) "\\spad{determinant(m)} returns the determinant of the matrix \\spad{m}. an error message is returned if the matrix is not square."))) 
@@ -2646,8 +2646,8 @@ NIL
 ((|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-558)))) 
 (-679 R) 
 ((|constructor| (NIL "\\spadtype{Matrix} is a matrix domain where 1-based indexing is used for both rows and columns.")) (|inverse| (((|Union| $ "failed") $) "\\spad{inverse(m)} returns the inverse of the matrix \\spad{m}. If the matrix is not invertible,{} \"failed\" is returned. Error: if the matrix is not square.")) (|diagonalMatrix| (($ (|Vector| |#1|)) "\\spad{diagonalMatrix(v)} returns a diagonal matrix where the elements of \\spad{v} appear on the diagonal."))) 
-((-4519 . T) (-4520 . T)) 
-((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-558))) (|HasAttribute| |#1| (QUOTE (-4521 "*"))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-365)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
+((-4521 . T) (-4522 . T)) 
+((|HasCategory| |#1| (QUOTE (-1090))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-301))) (|HasCategory| |#1| (QUOTE (-558))) (|HasAttribute| |#1| (QUOTE (-4523 "*"))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-365)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090)))))) 
 (-680 R) 
 ((|constructor| (NIL "This package provides standard arithmetic operations on matrices. The functions in this package store the results of computations in existing matrices,{} rather than creating new matrices. This package works only for matrices of type Matrix and uses the internal representation of this type.")) (** (((|Matrix| |#1|) (|Matrix| |#1|) (|NonNegativeInteger|)) "\\spad{x ** n} computes the \\spad{n}-th power of a square matrix. The power \\spad{n} is assumed greater than 1.")) (|power!| (((|Matrix| |#1|) (|Matrix| |#1|) (|Matrix| |#1|) (|Matrix| |#1|) (|Matrix| |#1|) (|NonNegativeInteger|)) "\\spad{power!(a,{}b,{}c,{}m,{}n)} computes \\spad{m} \\spad{**} \\spad{n} and stores the result in \\spad{a}. The matrices \\spad{b} and \\spad{c} are used to store intermediate results. Error: if \\spad{a},{} \\spad{b},{} \\spad{c},{} and \\spad{m} are not square and of the same dimensions.")) (|times!| (((|Matrix| |#1|) (|Matrix| |#1|) (|Matrix| |#1|) (|Matrix| |#1|)) "\\spad{times!(c,{}a,{}b)} computes the matrix product \\spad{a * b} and stores the result in the matrix \\spad{c}. Error: if \\spad{a},{} \\spad{b},{} and \\spad{c} do not have compatible dimensions.")) (|rightScalarTimes!| (((|Matrix| |#1|) (|Matrix| |#1|) (|Matrix| |#1|) |#1|) "\\spad{rightScalarTimes!(c,{}a,{}r)} computes the scalar product \\spad{a * r} and stores the result in the matrix \\spad{c}. Error: if \\spad{a} and \\spad{c} do not have the same dimensions.")) (|leftScalarTimes!| (((|Matrix| |#1|) (|Matrix| |#1|) |#1| (|Matrix| |#1|)) "\\spad{leftScalarTimes!(c,{}r,{}a)} computes the scalar product \\spad{r * a} and stores the result in the matrix \\spad{c}. Error: if \\spad{a} and \\spad{c} do not have the same dimensions.")) (|minus!| (((|Matrix| |#1|) (|Matrix| |#1|) (|Matrix| |#1|) (|Matrix| |#1|)) "\\spad{!minus!(c,{}a,{}b)} computes the matrix difference \\spad{a - b} and stores the result in the matrix \\spad{c}. Error: if \\spad{a},{} \\spad{b},{} and \\spad{c} do not have the same dimensions.") (((|Matrix| |#1|) (|Matrix| |#1|) (|Matrix| |#1|)) "\\spad{minus!(c,{}a)} computes \\spad{-a} and stores the result in the matrix \\spad{c}. Error: if a and \\spad{c} do not have the same dimensions.")) (|plus!| (((|Matrix| |#1|) (|Matrix| |#1|) (|Matrix| |#1|) (|Matrix| |#1|)) "\\spad{plus!(c,{}a,{}b)} computes the matrix sum \\spad{a + b} and stores the result in the matrix \\spad{c}. Error: if \\spad{a},{} \\spad{b},{} and \\spad{c} do not have the same dimensions.")) (|copy!| (((|Matrix| |#1|) (|Matrix| |#1|) (|Matrix| |#1|)) "\\spad{copy!(c,{}a)} copies the matrix \\spad{a} into the matrix \\spad{c}. Error: if \\spad{a} and \\spad{c} do not have the same dimensions."))) 
 NIL 
@@ -2662,11 +2662,11 @@ NIL
 NIL 
 (-683) 
 ((|constructor| (NIL "A domain which models the complex number representation used by machines in the AXIOM-NAG link.")) (|coerce| (((|Complex| (|Float|)) $) "\\spad{coerce(u)} transforms \\spad{u} into a COmplex Float") (($ (|Complex| (|MachineInteger|))) "\\spad{coerce(u)} transforms \\spad{u} into a MachineComplex") (($ (|Complex| (|MachineFloat|))) "\\spad{coerce(u)} transforms \\spad{u} into a MachineComplex") (($ (|Complex| (|Integer|))) "\\spad{coerce(u)} transforms \\spad{u} into a MachineComplex") (($ (|Complex| (|Float|))) "\\spad{coerce(u)} transforms \\spad{u} into a MachineComplex"))) 
-((-4512 . T) (-4517 |has| (-688) (-365)) (-4511 |has| (-688) (-365)) (-4003 . T) (-4518 |has| (-688) (-6 -4518)) (-4515 |has| (-688) (-6 -4515)) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| (-688) (QUOTE (-150))) (|HasCategory| (-688) (QUOTE (-148))) (|HasCategory| (-688) (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| (-688) (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| (-688) (QUOTE (-370))) (|HasCategory| (-688) (QUOTE (-365))) (|HasCategory| (-688) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-688) (QUOTE (-225))) (|HasCategory| (-688) (QUOTE (-350))) (-2198 (|HasCategory| (-688) (QUOTE (-365))) (|HasCategory| (-688) (QUOTE (-350)))) (|HasCategory| (-688) (LIST (QUOTE -281) (QUOTE (-688)) (QUOTE (-688)))) (|HasCategory| (-688) (LIST (QUOTE -303) (QUOTE (-688)))) (|HasCategory| (-688) (LIST (QUOTE -523) (QUOTE (-1161)) (QUOTE (-688)))) (|HasCategory| (-688) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| (-688) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| (-688) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| (-688) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| (-688) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-688) (QUOTE (-1021))) (|HasCategory| (-688) (QUOTE (-1181))) (-12 (|HasCategory| (-688) (QUOTE (-1002))) (|HasCategory| (-688) (QUOTE (-1181)))) (|HasCategory| (-688) (QUOTE (-550))) (|HasCategory| (-688) (QUOTE (-1056))) (-12 (|HasCategory| (-688) (QUOTE (-1056))) (|HasCategory| (-688) (QUOTE (-1181)))) (-2198 (|HasCategory| (-688) (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| (-688) (QUOTE (-365)))) (|HasCategory| (-688) (QUOTE (-301))) (-2198 (|HasCategory| (-688) (QUOTE (-301))) (|HasCategory| (-688) (QUOTE (-365))) (|HasCategory| (-688) (QUOTE (-350)))) (|HasCategory| (-688) (QUOTE (-904))) (-12 (|HasCategory| (-688) (QUOTE (-225))) (|HasCategory| (-688) (QUOTE (-365)))) (-12 (|HasCategory| (-688) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-688) (QUOTE (-365)))) (|HasCategory| (-688) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| (-688) (QUOTE (-842))) (|HasCategory| (-688) (QUOTE (-558))) (|HasAttribute| (-688) (QUOTE -4518)) (|HasAttribute| (-688) (QUOTE -4515)) (-12 (|HasCategory| (-688) (QUOTE (-301))) (|HasCategory| (-688) (QUOTE (-904)))) (-2198 (-12 (|HasCategory| (-688) (QUOTE (-301))) (|HasCategory| (-688) (QUOTE (-904)))) (|HasCategory| (-688) (QUOTE (-365))) (-12 (|HasCategory| (-688) (QUOTE (-350))) (|HasCategory| (-688) (QUOTE (-904))))) (-2198 (-12 (|HasCategory| (-688) (QUOTE (-301))) (|HasCategory| (-688) (QUOTE (-904)))) (-12 (|HasCategory| (-688) (QUOTE (-365))) (|HasCategory| (-688) (QUOTE (-904)))) (-12 (|HasCategory| (-688) (QUOTE (-350))) (|HasCategory| (-688) (QUOTE (-904))))) (-2198 (-12 (|HasCategory| (-688) (QUOTE (-301))) (|HasCategory| (-688) (QUOTE (-904)))) (|HasCategory| (-688) (QUOTE (-365)))) (-2198 (-12 (|HasCategory| (-688) (QUOTE (-301))) (|HasCategory| (-688) (QUOTE (-904)))) (|HasCategory| (-688) (QUOTE (-558)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-688) (QUOTE (-301))) (|HasCategory| (-688) (QUOTE (-904)))) (|HasCategory| (-688) (QUOTE (-148)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-688) (QUOTE (-301))) (|HasCategory| (-688) (QUOTE (-904)))) (|HasCategory| (-688) (QUOTE (-350))))) 
+((-4514 . T) (-4519 |has| (-688) (-365)) (-4513 |has| (-688) (-365)) (-4005 . T) (-4520 |has| (-688) (-6 -4520)) (-4517 |has| (-688) (-6 -4517)) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| (-688) (QUOTE (-150))) (|HasCategory| (-688) (QUOTE (-148))) (|HasCategory| (-688) (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| (-688) (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| (-688) (QUOTE (-370))) (|HasCategory| (-688) (QUOTE (-365))) (|HasCategory| (-688) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-688) (QUOTE (-225))) (|HasCategory| (-688) (QUOTE (-350))) (-2199 (|HasCategory| (-688) (QUOTE (-365))) (|HasCategory| (-688) (QUOTE (-350)))) (|HasCategory| (-688) (LIST (QUOTE -281) (QUOTE (-688)) (QUOTE (-688)))) (|HasCategory| (-688) (LIST (QUOTE -303) (QUOTE (-688)))) (|HasCategory| (-688) (LIST (QUOTE -523) (QUOTE (-1161)) (QUOTE (-688)))) (|HasCategory| (-688) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| (-688) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| (-688) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| (-688) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| (-688) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-688) (QUOTE (-1021))) (|HasCategory| (-688) (QUOTE (-1181))) (-12 (|HasCategory| (-688) (QUOTE (-1002))) (|HasCategory| (-688) (QUOTE (-1181)))) (|HasCategory| (-688) (QUOTE (-550))) (|HasCategory| (-688) (QUOTE (-1056))) (-12 (|HasCategory| (-688) (QUOTE (-1056))) (|HasCategory| (-688) (QUOTE (-1181)))) (-2199 (|HasCategory| (-688) (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| (-688) (QUOTE (-365)))) (|HasCategory| (-688) (QUOTE (-301))) (-2199 (|HasCategory| (-688) (QUOTE (-301))) (|HasCategory| (-688) (QUOTE (-365))) (|HasCategory| (-688) (QUOTE (-350)))) (|HasCategory| (-688) (QUOTE (-904))) (-12 (|HasCategory| (-688) (QUOTE (-225))) (|HasCategory| (-688) (QUOTE (-365)))) (-12 (|HasCategory| (-688) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-688) (QUOTE (-365)))) (|HasCategory| (-688) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| (-688) (QUOTE (-842))) (|HasCategory| (-688) (QUOTE (-558))) (|HasAttribute| (-688) (QUOTE -4520)) (|HasAttribute| (-688) (QUOTE -4517)) (-12 (|HasCategory| (-688) (QUOTE (-301))) (|HasCategory| (-688) (QUOTE (-904)))) (-2199 (-12 (|HasCategory| (-688) (QUOTE (-301))) (|HasCategory| (-688) (QUOTE (-904)))) (|HasCategory| (-688) (QUOTE (-365))) (-12 (|HasCategory| (-688) (QUOTE (-350))) (|HasCategory| (-688) (QUOTE (-904))))) (-2199 (-12 (|HasCategory| (-688) (QUOTE (-301))) (|HasCategory| (-688) (QUOTE (-904)))) (-12 (|HasCategory| (-688) (QUOTE (-365))) (|HasCategory| (-688) (QUOTE (-904)))) (-12 (|HasCategory| (-688) (QUOTE (-350))) (|HasCategory| (-688) (QUOTE (-904))))) (-2199 (-12 (|HasCategory| (-688) (QUOTE (-301))) (|HasCategory| (-688) (QUOTE (-904)))) (|HasCategory| (-688) (QUOTE (-365)))) (-2199 (-12 (|HasCategory| (-688) (QUOTE (-301))) (|HasCategory| (-688) (QUOTE (-904)))) (|HasCategory| (-688) (QUOTE (-558)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-688) (QUOTE (-301))) (|HasCategory| (-688) (QUOTE (-904)))) (|HasCategory| (-688) (QUOTE (-148)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-688) (QUOTE (-301))) (|HasCategory| (-688) (QUOTE (-904)))) (|HasCategory| (-688) (QUOTE (-350))))) 
 (-684 S) 
 ((|constructor| (NIL "A multi-dictionary is a dictionary which may contain duplicates. As for any dictionary,{} its size is assumed large so that copying (non-destructive) operations are generally to be avoided.")) (|duplicates| (((|List| (|Record| (|:| |entry| |#1|) (|:| |count| (|NonNegativeInteger|)))) $) "\\spad{duplicates(d)} returns a list of values which have duplicates in \\spad{d}")) (|removeDuplicates!| (($ $) "\\spad{removeDuplicates!(d)} destructively removes any duplicate values in dictionary \\spad{d}.")) (|insert!| (($ |#1| $ (|NonNegativeInteger|)) "\\spad{insert!(x,{}d,{}n)} destructively inserts \\spad{n} copies of \\spad{x} into dictionary \\spad{d}."))) 
-((-4520 . T) (-3973 . T)) 
+((-4522 . T) (-3973 . T)) 
 NIL 
 (-685 U) 
 ((|constructor| (NIL "This package supports factorization and gcds of univariate polynomials over the integers modulo different primes. The inputs are given as polynomials over the integers with the prime passed explicitly as an extra argument.")) (|exptMod| ((|#1| |#1| (|Integer|) |#1| (|Integer|)) "\\spad{exptMod(f,{}n,{}g,{}p)} raises the univariate polynomial \\spad{f} to the \\spad{n}th power modulo the polynomial \\spad{g} and the prime \\spad{p}.")) (|separateFactors| (((|List| |#1|) (|List| (|Record| (|:| |factor| |#1|) (|:| |degree| (|Integer|)))) (|Integer|)) "\\spad{separateFactors(ddl,{} p)} refines the distinct degree factorization produced by ddFact to give a complete list of factors.")) (|ddFact| (((|List| (|Record| (|:| |factor| |#1|) (|:| |degree| (|Integer|)))) |#1| (|Integer|)) "\\spad{ddFact(f,{}p)} computes a distinct degree factorization of the polynomial \\spad{f} modulo the prime \\spad{p},{} \\spadignore{i.e.} such that each factor is a product of irreducibles of the same degrees. The input polynomial \\spad{f} is assumed to be square-free modulo \\spad{p}.")) (|factor| (((|List| |#1|) |#1| (|Integer|)) "\\spad{factor(f1,{}p)} returns the list of factors of the univariate polynomial \\spad{f1} modulo the integer prime \\spad{p}. Error: if \\spad{f1} is not square-free modulo \\spad{p}.")) (|linears| ((|#1| |#1| (|Integer|)) "\\spad{linears(f,{}p)} returns the product of all the linear factors of \\spad{f} modulo \\spad{p}. Potentially incorrect result if \\spad{f} is not square-free modulo \\spad{p}.")) (|gcd| ((|#1| |#1| |#1| (|Integer|)) "\\spad{gcd(f1,{}f2,{}p)} computes the \\spad{gcd} of the univariate polynomials \\spad{f1} and \\spad{f2} modulo the integer prime \\spad{p}."))) 
@@ -2682,7 +2682,7 @@ NIL
 NIL 
 (-688) 
 ((|constructor| (NIL "A domain which models the floating point representation used by machines in the AXIOM-NAG link.")) (|changeBase| (($ (|Integer|) (|Integer|) (|PositiveInteger|)) "\\spad{changeBase(exp,{}man,{}base)} is not documented")) (|exponent| (((|Integer|) $) "\\spad{exponent(u)} returns the exponent of \\spad{u}")) (|mantissa| (((|Integer|) $) "\\spad{mantissa(u)} returns the mantissa of \\spad{u}")) (|coerce| (($ (|MachineInteger|)) "\\spad{coerce(u)} transforms a MachineInteger into a MachineFloat") (((|Float|) $) "\\spad{coerce(u)} transforms a MachineFloat to a standard Float")) (|minimumExponent| (((|Integer|)) "\\spad{minimumExponent()} returns the minimum exponent in the model") (((|Integer|) (|Integer|)) "\\spad{minimumExponent(e)} sets the minimum exponent in the model to \\spad{e}")) (|maximumExponent| (((|Integer|)) "\\spad{maximumExponent()} returns the maximum exponent in the model") (((|Integer|) (|Integer|)) "\\spad{maximumExponent(e)} sets the maximum exponent in the model to \\spad{e}")) (|base| (((|PositiveInteger|)) "\\spad{base()} returns the base of the model") (((|PositiveInteger|) (|PositiveInteger|)) "\\spad{base(b)} sets the base of the model to \\spad{b}")) (|precision| (((|PositiveInteger|)) "\\spad{precision()} returns the number of digits in the model") (((|PositiveInteger|) (|PositiveInteger|)) "\\spad{precision(p)} sets the number of digits in the model to \\spad{p}"))) 
-((-3996 . T) (-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-3999 . T) (-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-689 R) 
 ((|constructor| (NIL "Modular hermitian row reduction.")) (|normalizedDivide| (((|Record| (|:| |quotient| |#1|) (|:| |remainder| |#1|)) |#1| |#1|) "\\spad{normalizedDivide(n,{}d)} returns a normalized quotient and remainder such that consistently unique representatives for the residue class are chosen,{} \\spadignore{e.g.} positive remainders")) (|rowEchelonLocal| (((|Matrix| |#1|) (|Matrix| |#1|) |#1| |#1|) "\\spad{rowEchelonLocal(m,{} d,{} p)} computes the row-echelon form of \\spad{m} concatenated with \\spad{d} times the identity matrix over a local ring where \\spad{p} is the only prime.")) (|rowEchLocal| (((|Matrix| |#1|) (|Matrix| |#1|) |#1|) "\\spad{rowEchLocal(m,{}p)} computes a modular row-echelon form of \\spad{m},{} finding an appropriate modulus over a local ring where \\spad{p} is the only prime.")) (|rowEchelon| (((|Matrix| |#1|) (|Matrix| |#1|) |#1|) "\\spad{rowEchelon(m,{} d)} computes a modular row-echelon form mod \\spad{d} of \\indented{3}{[\\spad{d}\\space{5}]} \\indented{3}{[\\space{2}\\spad{d}\\space{3}]} \\indented{3}{[\\space{4}. ]} \\indented{3}{[\\space{5}\\spad{d}]} \\indented{3}{[\\space{3}\\spad{M}\\space{2}]} where \\spad{M = m mod d}.")) (|rowEch| (((|Matrix| |#1|) (|Matrix| |#1|)) "\\spad{rowEch(m)} computes a modular row-echelon form of \\spad{m},{} finding an appropriate modulus."))) 
@@ -2690,7 +2690,7 @@ NIL
 NIL 
 (-690) 
 ((|constructor| (NIL "A domain which models the integer representation used by machines in the AXIOM-NAG link.")) (|coerce| (((|Expression| $) (|Expression| (|Integer|))) "\\spad{coerce(x)} returns \\spad{x} with coefficients in the domain")) (|maxint| (((|PositiveInteger|)) "\\spad{maxint()} returns the maximum integer in the model") (((|PositiveInteger|) (|PositiveInteger|)) "\\spad{maxint(u)} sets the maximum integer in the model to \\spad{u}"))) 
-((-4518 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4520 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-691 S D1 D2 I) 
 ((|constructor| (NIL "Tools and transforms for making compiled functions from top-level expressions")) (|compiledFunction| (((|Mapping| |#4| |#2| |#3|) |#1| (|Symbol|) (|Symbol|)) "\\spad{compiledFunction(expr,{}x,{}y)} returns a function \\spad{f: (D1,{} D2) -> I} defined by \\spad{f(x,{} y) == expr}. Function \\spad{f} is compiled and directly applicable to objects of type \\spad{(D1,{} D2)}")) (|binaryFunction| (((|Mapping| |#4| |#2| |#3|) (|Symbol|)) "\\spad{binaryFunction(s)} is a local function"))) 
@@ -2712,7 +2712,7 @@ NIL
 ((|constructor| (NIL "MakeRecord is used internally by the interpreter to create record types which are used for doing parallel iterations on streams.")) (|makeRecord| (((|Record| (|:| |part1| |#1|) (|:| |part2| |#2|)) |#1| |#2|) "\\spad{makeRecord(a,{}b)} creates a record object with type Record(part1:S,{} part2:R),{} where \\spad{part1} is \\spad{a} and \\spad{part2} is \\spad{b}."))) 
 NIL 
 NIL 
-(-696 S -3190 I) 
+(-696 S -3192 I) 
 ((|constructor| (NIL "Tools for making compiled functions from top-level expressions Transforms top-level objects into compiled functions.")) (|compiledFunction| (((|Mapping| |#3| |#2|) |#1| (|Symbol|)) "\\spad{compiledFunction(expr,{} x)} returns a function \\spad{f: D -> I} defined by \\spad{f(x) == expr}. Function \\spad{f} is compiled and directly applicable to objects of type \\spad{D}.")) (|unaryFunction| (((|Mapping| |#3| |#2|) (|Symbol|)) "\\spad{unaryFunction(a)} is a local function"))) 
 NIL 
 NIL 
@@ -2722,7 +2722,7 @@ NIL
 NIL 
 (-698 R) 
 ((|constructor| (NIL "This is the category of linear operator rings with one generator. The generator is not named by the category but can always be constructed as \\spad{monomial(1,{}1)}. \\blankline For convenience,{} call the generator \\spad{G}. Then each value is equal to \\spad{sum(a(i)*G**i,{} i = 0..n)} for some unique \\spad{n} and \\spad{a(i)} in \\spad{R}. \\blankline Note that multiplication is not necessarily commutative. In fact,{} if \\spad{a} is in \\spad{R},{} it is quite normal to have \\spad{a*G \\^= G*a}.")) (|monomial| (($ |#1| (|NonNegativeInteger|)) "\\spad{monomial(c,{}k)} produces \\spad{c} times the \\spad{k}-th power of the generating operator,{} \\spad{monomial(1,{}1)}.")) (|coefficient| ((|#1| $ (|NonNegativeInteger|)) "\\spad{coefficient(l,{}k)} is \\spad{a(k)} if \\indented{2}{\\spad{l = sum(monomial(a(i),{}i),{} i = 0..n)}.}")) (|reductum| (($ $) "\\spad{reductum(l)} is \\spad{l - monomial(a(n),{}n)} if \\indented{2}{\\spad{l = sum(monomial(a(i),{}i),{} i = 0..n)}.}")) (|leadingCoefficient| ((|#1| $) "\\spad{leadingCoefficient(l)} is \\spad{a(n)} if \\indented{2}{\\spad{l = sum(monomial(a(i),{}i),{} i = 0..n)}.}")) (|minimumDegree| (((|NonNegativeInteger|) $) "\\spad{minimumDegree(l)} is the smallest \\spad{k} such that \\spad{a(k) \\^= 0} if \\indented{2}{\\spad{l = sum(monomial(a(i),{}i),{} i = 0..n)}.}")) (|degree| (((|NonNegativeInteger|) $) "\\spad{degree(l)} is \\spad{n} if \\indented{2}{\\spad{l = sum(monomial(a(i),{}i),{} i = 0..n)}.}"))) 
-((-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-699 R1 UP1 UPUP1 R2 UP2 UPUP2) 
 ((|constructor| (NIL "Lifting of a map through 2 levels of polynomials.")) (|map| ((|#6| (|Mapping| |#4| |#1|) |#3|) "\\spad{map(f,{} p)} lifts \\spad{f} to the domain of \\spad{p} then applies it to \\spad{p}."))) 
@@ -2732,25 +2732,25 @@ NIL
 ((|constructor| (NIL "This package is based on the TeXFormat domain by Robert \\spad{S}. Sutor \\spadtype{MathMLFormat} provides a coercion from \\spadtype{OutputForm} to MathML format.")) (|display| (((|Void|) (|String|)) "prints the string returned by coerce,{} adding <math ...> tags.")) (|exprex| (((|String|) (|OutputForm|)) "coverts \\spadtype{OutputForm} to \\spadtype{String} with the structure preserved with braces. Actually this is not quite accurate. The function \\spadfun{precondition} is first applied to the \\spadtype{OutputForm} expression before \\spadfun{exprex}. The raw \\spadtype{OutputForm} and the nature of the \\spadfun{precondition} function is still obscure to me at the time of this writing (2007-02-14).")) (|coerceL| (((|String|) (|OutputForm|)) "coerceS(\\spad{o}) changes \\spad{o} in the standard output format to MathML format and displays result as one long string.")) (|coerceS| (((|String|) (|OutputForm|)) "\\spad{coerceS(o)} changes \\spad{o} in the standard output format to MathML format and displays formatted result.")) (|coerce| (((|String|) (|OutputForm|)) "coerceS(\\spad{o}) changes \\spad{o} in the standard output format to MathML format."))) 
 NIL 
 NIL 
-(-701 R |Mod| -3627 -1347 |exactQuo|) 
+(-701 R |Mod| -3121 -3645 |exactQuo|) 
 ((|constructor| (NIL "These domains are used for the factorization and gcds of univariate polynomials over the integers in order to work modulo different primes. See \\spadtype{ModularRing},{} \\spadtype{EuclideanModularRing}")) (|exQuo| (((|Union| $ "failed") $ $) "\\spad{exQuo(x,{}y)} is not documented")) (|reduce| (($ |#1| |#2|) "\\spad{reduce(r,{}m)} is not documented")) (|coerce| ((|#1| $) "\\spad{coerce(x)} is not documented")) (|modulus| ((|#2| $) "\\spad{modulus(x)} is not documented"))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-702 R |Rep|) 
 ((|constructor| (NIL "This package has not been documented")) (|frobenius| (($ $) "\\spad{frobenius(x)} is not documented")) (|computePowers| (((|PrimitiveArray| $)) "\\spad{computePowers()} is not documented")) (|pow| (((|PrimitiveArray| $)) "\\spad{pow()} is not documented")) (|An| (((|Vector| |#1|) $) "\\spad{An(x)} is not documented")) (|UnVectorise| (($ (|Vector| |#1|)) "\\spad{UnVectorise(v)} is not documented")) (|Vectorise| (((|Vector| |#1|) $) "\\spad{Vectorise(x)} is not documented")) (|coerce| (($ |#2|) "\\spad{coerce(x)} is not documented")) (|lift| ((|#2| $) "\\spad{lift(x)} is not documented")) (|reduce| (($ |#2|) "\\spad{reduce(x)} is not documented")) (|modulus| ((|#2|) "\\spad{modulus()} is not documented")) (|setPoly| ((|#2| |#2|) "\\spad{setPoly(x)} is not documented"))) 
-(((-4521 "*") |has| |#1| (-172)) (-4512 |has| |#1| (-558)) (-4515 |has| |#1| (-365)) (-4517 |has| |#1| (-6 -4517)) (-4514 . T) (-4513 . T) (-4516 . T)) 
-((|HasCategory| |#1| (QUOTE (-904))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (-2198 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558)))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-1136))) (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (QUOTE (-350))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasCategory| |#1| (QUOTE (-225))) (|HasAttribute| |#1| (QUOTE -4517)) (|HasCategory| |#1| (QUOTE (-453))) (-2198 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2198 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2198 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-148))))) 
+(((-4523 "*") |has| |#1| (-172)) (-4514 |has| |#1| (-558)) (-4517 |has| |#1| (-365)) (-4519 |has| |#1| (-6 -4519)) (-4516 . T) (-4515 . T) (-4518 . T)) 
+((|HasCategory| |#1| (QUOTE (-904))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (-2199 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558)))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-1136))) (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (QUOTE (-350))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasCategory| |#1| (QUOTE (-225))) (|HasAttribute| |#1| (QUOTE -4519)) (|HasCategory| |#1| (QUOTE (-453))) (-2199 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2199 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2199 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-148))))) 
 (-703 IS E |ff|) 
 ((|constructor| (NIL "This package has no documentation")) (|construct| (($ |#1| |#2|) "\\spad{construct(i,{}e)} is not documented")) (|coerce| (((|Record| (|:| |index| |#1|) (|:| |exponent| |#2|)) $) "\\spad{coerce(x)} is not documented") (($ (|Record| (|:| |index| |#1|) (|:| |exponent| |#2|))) "\\spad{coerce(x)} is not documented")) (|index| ((|#1| $) "\\spad{index(x)} is not documented")) (|exponent| ((|#2| $) "\\spad{exponent(x)} is not documented"))) 
 NIL 
 NIL 
 (-704 R M) 
 ((|constructor| (NIL "Algebra of ADDITIVE operators on a module.")) (|makeop| (($ |#1| (|FreeGroup| (|BasicOperator|))) "\\spad{makeop should} be local but conditional")) (|opeval| ((|#2| (|BasicOperator|) |#2|) "\\spad{opeval should} be local but conditional")) (** (($ $ (|Integer|)) "\\spad{op**n} is not documented") (($ (|BasicOperator|) (|Integer|)) "\\spad{op**n} is not documented")) (|evaluateInverse| (($ $ (|Mapping| |#2| |#2|)) "\\spad{evaluateInverse(x,{}f)} is not documented")) (|evaluate| (($ $ (|Mapping| |#2| |#2|)) "\\spad{evaluate(f,{} u +-> g u)} attaches the map \\spad{g} to \\spad{f}. \\spad{f} must be a basic operator \\spad{g} MUST be additive,{} \\spadignore{i.e.} \\spad{g(a + b) = g(a) + g(b)} for any \\spad{a},{} \\spad{b} in \\spad{M}. This implies that \\spad{g(n a) = n g(a)} for any \\spad{a} in \\spad{M} and integer \\spad{n > 0}.")) (|conjug| ((|#1| |#1|) "\\spad{conjug(x)}should be local but conditional")) (|adjoint| (($ $ $) "\\spad{adjoint(op1,{} op2)} sets the adjoint of \\spad{op1} to be \\spad{op2}. \\spad{op1} must be a basic operator") (($ $) "\\spad{adjoint(op)} returns the adjoint of the operator \\spad{op}."))) 
-((-4514 |has| |#1| (-172)) (-4513 |has| |#1| (-172)) (-4516 . T)) 
+((-4516 |has| |#1| (-172)) (-4515 |has| |#1| (-172)) (-4518 . T)) 
 ((|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150)))) 
-(-705 R |Mod| -3627 -1347 |exactQuo|) 
+(-705 R |Mod| -3121 -3645 |exactQuo|) 
 ((|constructor| (NIL "These domains are used for the factorization and gcds of univariate polynomials over the integers in order to work modulo different primes. See \\spadtype{EuclideanModularRing} ,{}\\spadtype{ModularField}")) (|inv| (($ $) "\\spad{inv(x)} is not documented")) (|recip| (((|Union| $ "failed") $) "\\spad{recip(x)} is not documented")) (|exQuo| (((|Union| $ "failed") $ $) "\\spad{exQuo(x,{}y)} is not documented")) (|reduce| (($ |#1| |#2|) "\\spad{reduce(r,{}m)} is not documented")) (|coerce| ((|#1| $) "\\spad{coerce(x)} is not documented")) (|modulus| ((|#2| $) "\\spad{modulus(x)} is not documented"))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-706 S R) 
 ((|constructor| (NIL "The category of modules over a commutative ring. \\blankline Axioms\\spad{\\br} \\tab{5}\\spad{1*x = x}\\spad{\\br} \\tab{5}\\spad{(a*b)*x = a*(b*x)}\\spad{\\br} \\tab{5}\\spad{(a+b)*x = (a*x)+(b*x)}\\spad{\\br} \\tab{5}\\spad{a*(x+y) = (a*x)+(a*y)}"))) 
@@ -2758,11 +2758,11 @@ NIL
 NIL 
 (-707 R) 
 ((|constructor| (NIL "The category of modules over a commutative ring. \\blankline Axioms\\spad{\\br} \\tab{5}\\spad{1*x = x}\\spad{\\br} \\tab{5}\\spad{(a*b)*x = a*(b*x)}\\spad{\\br} \\tab{5}\\spad{(a+b)*x = (a*x)+(b*x)}\\spad{\\br} \\tab{5}\\spad{a*(x+y) = (a*x)+(a*y)}"))) 
-((-4514 . T) (-4513 . T)) 
+((-4516 . T) (-4515 . T)) 
 NIL 
 (-708 -1478) 
 ((|constructor| (NIL "MoebiusTransform(\\spad{F}) is the domain of fractional linear (Moebius) transformations over \\spad{F}. This a domain of 2-by-2 matrices acting on \\spad{P1}(\\spad{F}).")) (|eval| (((|OnePointCompletion| |#1|) $ (|OnePointCompletion| |#1|)) "\\spad{eval(m,{}x)} returns \\spad{(a*x + b)/(c*x + d)} where \\spad{m = moebius(a,{}b,{}c,{}d)} (see moebius from MoebiusTransform).") ((|#1| $ |#1|) "\\spad{eval(m,{}x)} returns \\spad{(a*x + b)/(c*x + d)} where \\spad{m = moebius(a,{}b,{}c,{}d)} (see moebius from MoebiusTransform).")) (|recip| (($ $) "\\spad{recip(m)} = recip() * \\spad{m}") (($) "\\spad{recip()} returns \\spad{matrix [[0,{}1],{}[1,{}0]]} representing the map \\spad{x -> 1 / x}.")) (|scale| (($ $ |#1|) "\\spad{scale(m,{}h)} returns \\spad{scale(h) * m} (see shift from MoebiusTransform).") (($ |#1|) "\\spad{scale(k)} returns \\spad{matrix [[k,{}0],{}[0,{}1]]} representing the map \\spad{x -> k * x}.")) (|shift| (($ $ |#1|) "\\spad{shift(m,{}h)} returns \\spad{shift(h) * m} (see shift from MoebiusTransform).") (($ |#1|) "\\spad{shift(k)} returns \\spad{matrix [[1,{}k],{}[0,{}1]]} representing the map \\spad{x -> x + k}.")) (|moebius| (($ |#1| |#1| |#1| |#1|) "\\spad{moebius(a,{}b,{}c,{}d)} returns \\spad{matrix [[a,{}b],{}[c,{}d]]}."))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-709 S) 
 ((|constructor| (NIL "Monad is the class of all multiplicative monads,{} \\spadignore{i.e.} sets with a binary operation.")) (** (($ $ (|PositiveInteger|)) "\\spad{a**n} returns the \\spad{n}\\spad{-}th power of \\spad{a},{} defined by repeated squaring.")) (|leftPower| (($ $ (|PositiveInteger|)) "\\spad{leftPower(a,{}n)} returns the \\spad{n}\\spad{-}th left power of \\spad{a},{} \\spadignore{i.e.} \\spad{leftPower(a,{}n) := a * leftPower(a,{}n-1)} and \\spad{leftPower(a,{}1) := a}.")) (|rightPower| (($ $ (|PositiveInteger|)) "\\spad{rightPower(a,{}n)} returns the \\spad{n}\\spad{-}th right power of \\spad{a},{} \\spadignore{i.e.} \\spad{rightPower(a,{}n) := rightPower(a,{}n-1) * a} and \\spad{rightPower(a,{}1) := a}.")) (* (($ $ $) "\\spad{a*b} is the product of \\spad{a} and \\spad{b} in a set with a binary operation."))) 
@@ -2786,7 +2786,7 @@ NIL
 ((|HasCategory| |#2| (QUOTE (-350))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-370)))) 
 (-714 R UP) 
 ((|constructor| (NIL "A \\spadtype{MonogenicAlgebra} is an algebra of finite rank which can be generated by a single element.")) (|derivationCoordinates| (((|Matrix| |#1|) (|Vector| $) (|Mapping| |#1| |#1|)) "\\spad{derivationCoordinates(b,{} ')} returns \\spad{M} such that \\spad{b' = M b}.")) (|lift| ((|#2| $) "\\spad{lift(z)} returns a minimal degree univariate polynomial up such that \\spad{z=reduce up}.")) (|convert| (($ |#2|) "\\spad{convert(up)} converts the univariate polynomial \\spad{up} to an algebra element,{} reducing by the \\spad{definingPolynomial()} if necessary.")) (|reduce| (((|Union| $ "failed") (|Fraction| |#2|)) "\\spad{reduce(frac)} converts the fraction \\spad{frac} to an algebra element.") (($ |#2|) "\\spad{reduce(up)} converts the univariate polynomial \\spad{up} to an algebra element,{} reducing by the \\spad{definingPolynomial()} if necessary.")) (|definingPolynomial| ((|#2|) "\\spad{definingPolynomial()} returns the minimal polynomial which \\spad{generator()} satisfies.")) (|generator| (($) "\\spad{generator()} returns the generator for this domain."))) 
-((-4512 |has| |#1| (-365)) (-4517 |has| |#1| (-365)) (-4511 |has| |#1| (-365)) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4514 |has| |#1| (-365)) (-4519 |has| |#1| (-365)) (-4513 |has| |#1| (-365)) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-715 S) 
 ((|constructor| (NIL "The class of multiplicative monoids,{} \\spadignore{i.e.} semigroups with a multiplicative identity element. \\blankline Axioms\\spad{\\br} \\tab{5}\\spad{leftIdentity(\"*\":(\\%,{}\\%)->\\%,{}1)}\\tab{5}\\spad{1*x=x}\\spad{\\br} \\tab{5}\\spad{rightIdentity(\"*\":(\\%,{}\\%)->\\%,{}1)}\\tab{4}\\spad{x*1=x} \\blankline Conditional attributes\\spad{\\br} \\tab{5}unitsKnown - \\spadfun{recip} only returns \"failed\" on non-units")) (|recip| (((|Union| $ "failed") $) "\\spad{recip(x)} tries to compute the multiplicative inverse for \\spad{x} or \"failed\" if it cannot find the inverse (see unitsKnown).")) (^ (($ $ (|NonNegativeInteger|)) "\\spad{x^n} returns the repeated product of \\spad{x} \\spad{n} times,{} \\spadignore{i.e.} exponentiation.")) (** (($ $ (|NonNegativeInteger|)) "\\spad{x**n} returns the repeated product of \\spad{x} \\spad{n} times,{} \\spadignore{i.e.} exponentiation.")) (|one?| (((|Boolean|) $) "\\spad{one?(x)} tests if \\spad{x} is equal to 1.")) (|sample| (($) "\\spad{sample yields} a value of type \\%")) ((|One|) (($) "1 is the multiplicative identity."))) 
@@ -2800,11 +2800,11 @@ NIL
 ((|constructor| (NIL "Tools for handling monomial extensions.")) (|decompose| (((|Record| (|:| |poly| |#2|) (|:| |normal| (|Fraction| |#2|)) (|:| |special| (|Fraction| |#2|))) (|Fraction| |#2|) (|Mapping| |#2| |#2|)) "\\spad{decompose(f,{} D)} returns \\spad{[p,{}n,{}s]} such that \\spad{f = p+n+s},{} all the squarefree factors of \\spad{denom(n)} are normal \\spad{w}.\\spad{r}.\\spad{t}. \\spad{D},{} \\spad{denom(s)} is special \\spad{w}.\\spad{r}.\\spad{t}. \\spad{D},{} and \\spad{n} and \\spad{s} are proper fractions (no pole at infinity). \\spad{D} is the derivation to use.")) (|normalDenom| ((|#2| (|Fraction| |#2|) (|Mapping| |#2| |#2|)) "\\spad{normalDenom(f,{} D)} returns the product of all the normal factors of \\spad{denom(f)}. \\spad{D} is the derivation to use.")) (|splitSquarefree| (((|Record| (|:| |normal| (|Factored| |#2|)) (|:| |special| (|Factored| |#2|))) |#2| (|Mapping| |#2| |#2|)) "\\spad{splitSquarefree(p,{} D)} returns \\spad{[n_1 n_2\\^2 ... n_m\\^m,{} s_1 s_2\\^2 ... s_q\\^q]} such that \\spad{p = n_1 n_2\\^2 ... n_m\\^m s_1 s_2\\^2 ... s_q\\^q},{} each \\spad{n_i} is normal \\spad{w}.\\spad{r}.\\spad{t}. \\spad{D} and each \\spad{s_i} is special \\spad{w}.\\spad{r}.\\spad{t} \\spad{D}. \\spad{D} is the derivation to use.")) (|split| (((|Record| (|:| |normal| |#2|) (|:| |special| |#2|)) |#2| (|Mapping| |#2| |#2|)) "\\spad{split(p,{} D)} returns \\spad{[n,{}s]} such that \\spad{p = n s},{} all the squarefree factors of \\spad{n} are normal \\spad{w}.\\spad{r}.\\spad{t}. \\spad{D},{} and \\spad{s} is special \\spad{w}.\\spad{r}.\\spad{t}. \\spad{D}. \\spad{D} is the derivation to use."))) 
 NIL 
 NIL 
-(-718 |VarSet| -1993 E2 R S PR PS) 
+(-718 |VarSet| -4464 E2 R S PR PS) 
 ((|constructor| (NIL "Utilities for MPolyCat")) (|reshape| ((|#7| (|List| |#5|) |#6|) "\\spad{reshape(l,{}p)} \\undocumented")) (|map| ((|#7| (|Mapping| |#5| |#4|) |#6|) "\\spad{map(f,{}p)} \\undocumented"))) 
 NIL 
 NIL 
-(-719 |Vars1| |Vars2| -1993 E2 R PR1 PR2) 
+(-719 |Vars1| |Vars2| -4464 E2 R PR1 PR2) 
 ((|constructor| (NIL "This package has no description")) (|map| ((|#7| (|Mapping| |#2| |#1|) |#6|) "\\spad{map(f,{}x)} \\undocumented"))) 
 NIL 
 NIL 
@@ -2814,8 +2814,8 @@ NIL
 NIL 
 (-721 |vl| R) 
 ((|constructor| (NIL "This type is the basic representation of sparse recursive multivariate polynomials whose variables are from a user specified list of symbols. The ordering is specified by the position of the variable in the list. The coefficient ring may be non commutative,{} but the variables are assumed to commute."))) 
-(((-4521 "*") |has| |#2| (-172)) (-4512 |has| |#2| (-558)) (-4517 |has| |#2| (-6 -4517)) (-4514 . T) (-4513 . T) (-4516 . T)) 
-((|HasCategory| |#2| (QUOTE (-904))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-172))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-558)))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#2| (QUOTE (-842))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-365))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasAttribute| |#2| (QUOTE -4517)) (|HasCategory| |#2| (QUOTE (-453))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2198 (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2198 (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (|HasCategory| |#2| (QUOTE (-148))))) 
+(((-4523 "*") |has| |#2| (-172)) (-4514 |has| |#2| (-558)) (-4519 |has| |#2| (-6 -4519)) (-4516 . T) (-4515 . T) (-4518 . T)) 
+((|HasCategory| |#2| (QUOTE (-904))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-172))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-558)))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| (-852 |#1|) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#2| (QUOTE (-842))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-365))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasAttribute| |#2| (QUOTE -4519)) (|HasCategory| |#2| (QUOTE (-453))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2199 (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2199 (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (|HasCategory| |#2| (QUOTE (-148))))) 
 (-722 E OV R PRF) 
 ((|constructor| (NIL "This package exports a factor operation for multivariate polynomials with coefficients which are rational functions over some ring \\spad{R} over which we can factor. It is used internally by packages such as primary decomposition which need to work with polynomials with rational function coefficients,{} \\spadignore{i.e.} themselves fractions of polynomials.")) (|factor| (((|Factored| |#4|) |#4|) "\\spad{factor(prf)} factors a polynomial with rational function coefficients.")) (|pushuconst| ((|#4| (|Fraction| (|Polynomial| |#3|)) |#2|) "\\spad{pushuconst(r,{}var)} takes a rational function and raises all occurances of the variable \\spad{var} to the polynomial level.")) (|pushucoef| ((|#4| (|SparseUnivariatePolynomial| (|Polynomial| |#3|)) |#2|) "\\spad{pushucoef(upoly,{}var)} converts the anonymous univariate polynomial \\spad{upoly} to a polynomial in \\spad{var} over rational functions.")) (|pushup| ((|#4| |#4| |#2|) "\\spad{pushup(prf,{}var)} raises all occurences of the variable \\spad{var} in the coefficients of the polynomial \\spad{prf} back to the polynomial level.")) (|pushdterm| ((|#4| (|SparseUnivariatePolynomial| |#4|) |#2|) "\\spad{pushdterm(monom,{}var)} pushes all top level occurences of the variable \\spad{var} into the coefficient domain for the monomial \\spad{monom}.")) (|pushdown| ((|#4| |#4| |#2|) "\\spad{pushdown(prf,{}var)} pushes all top level occurences of the variable \\spad{var} into the coefficient domain for the polynomial \\spad{prf}.")) (|totalfract| (((|Record| (|:| |sup| (|Polynomial| |#3|)) (|:| |inf| (|Polynomial| |#3|))) |#4|) "\\spad{totalfract(prf)} takes a polynomial whose coefficients are themselves fractions of polynomials and returns a record containing the numerator and denominator resulting from putting \\spad{prf} over a common denominator.")) (|convert| (((|Symbol|) $) "\\spad{convert(x)} converts \\spad{x} to a symbol"))) 
 NIL 
@@ -2830,15 +2830,15 @@ NIL
 NIL 
 (-725 R M) 
 ((|constructor| (NIL "\\spadtype{MonoidRing}(\\spad{R},{}\\spad{M}),{} implements the algebra of all maps from the monoid \\spad{M} to the commutative ring \\spad{R} with finite support. Multiplication of two maps \\spad{f} and \\spad{g} is defined to map an element \\spad{c} of \\spad{M} to the (convolution) sum over \\spad{f}(a)\\spad{g}(\\spad{b}) such that ab = \\spad{c}. Thus \\spad{M} can be identified with a canonical basis and the maps can also be considered as formal linear combinations of the elements in \\spad{M}. Scalar multiples of a basis element are called monomials. A prominent example is the class of polynomials where the monoid is a direct product of the natural numbers with pointwise addition. When \\spad{M} is \\spadtype{FreeMonoid Symbol},{} one gets polynomials in infinitely many non-commuting variables. Another application area is representation theory of finite groups \\spad{G},{} where modules over \\spadtype{MonoidRing}(\\spad{R},{}\\spad{G}) are studied.")) (|reductum| (($ $) "\\spad{reductum(f)} is \\spad{f} minus its leading monomial.")) (|leadingCoefficient| ((|#1| $) "\\spad{leadingCoefficient(f)} gives the coefficient of \\spad{f},{} whose corresponding monoid element is the greatest among all those with non-zero coefficients.")) (|leadingMonomial| ((|#2| $) "\\spad{leadingMonomial(f)} gives the monomial of \\spad{f} whose corresponding monoid element is the greatest among all those with non-zero coefficients.")) (|numberOfMonomials| (((|NonNegativeInteger|) $) "\\spad{numberOfMonomials(f)} is the number of non-zero coefficients with respect to the canonical basis.")) (|monomials| (((|List| $) $) "\\spad{monomials(f)} gives the list of all monomials whose sum is \\spad{f}.")) (|coefficients| (((|List| |#1|) $) "\\spad{coefficients(f)} lists all non-zero coefficients.")) (|monomial?| (((|Boolean|) $) "\\spad{monomial?(f)} tests if \\spad{f} is a single monomial.")) (|map| (($ (|Mapping| |#1| |#1|) $) "\\spad{map(fn,{}u)} maps function \\spad{fn} onto the coefficients of the non-zero monomials of \\spad{u}.")) (|terms| (((|List| (|Record| (|:| |coef| |#1|) (|:| |monom| |#2|))) $) "\\spad{terms(f)} gives the list of non-zero coefficients combined with their corresponding basis element as records. This is the internal representation.")) (|coerce| (($ (|List| (|Record| (|:| |coef| |#1|) (|:| |monom| |#2|)))) "\\spad{coerce(lt)} converts a list of terms and coefficients to a member of the domain.")) (|coefficient| ((|#1| $ |#2|) "\\spad{coefficient(f,{}m)} extracts the coefficient of \\spad{m} in \\spad{f} with respect to the canonical basis \\spad{M}.")) (|monomial| (($ |#1| |#2|) "\\spad{monomial(r,{}m)} creates a scalar multiple of the basis element \\spad{m}."))) 
-((-4514 |has| |#1| (-172)) (-4513 |has| |#1| (-172)) (-4516 . T)) 
+((-4516 |has| |#1| (-172)) (-4515 |has| |#1| (-172)) (-4518 . T)) 
 ((-12 (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#2| (QUOTE (-370)))) (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#2| (QUOTE (-842)))) 
 (-726 S) 
 ((|constructor| (NIL "A multi-set aggregate is a set which keeps track of the multiplicity of its elements."))) 
-((-4509 . T) (-4520 . T) (-3973 . T)) 
+((-4511 . T) (-4522 . T) (-3973 . T)) 
 NIL 
 (-727 S) 
 ((|constructor| (NIL "A multiset is a set with multiplicities.")) (|remove!| (($ (|Mapping| (|Boolean|) |#1|) $ (|Integer|)) "\\spad{remove!(p,{}ms,{}number)} removes destructively at most \\spad{number} copies of elements \\spad{x} such that \\spad{p(x)} is \\spadfun{\\spad{true}} if \\spad{number} is positive,{} all of them if \\spad{number} equals zero,{} and all but at most \\spad{-number} if \\spad{number} is negative.") (($ |#1| $ (|Integer|)) "\\spad{remove!(x,{}ms,{}number)} removes destructively at most \\spad{number} copies of element \\spad{x} if \\spad{number} is positive,{} all of them if \\spad{number} equals zero,{} and all but at most \\spad{-number} if \\spad{number} is negative.")) (|remove| (($ (|Mapping| (|Boolean|) |#1|) $ (|Integer|)) "\\spad{remove(p,{}ms,{}number)} removes at most \\spad{number} copies of elements \\spad{x} such that \\spad{p(x)} is \\spadfun{\\spad{true}} if \\spad{number} is positive,{} all of them if \\spad{number} equals zero,{} and all but at most \\spad{-number} if \\spad{number} is negative.") (($ |#1| $ (|Integer|)) "\\spad{remove(x,{}ms,{}number)} removes at most \\spad{number} copies of element \\spad{x} if \\spad{number} is positive,{} all of them if \\spad{number} equals zero,{} and all but at most \\spad{-number} if \\spad{number} is negative.")) (|members| (((|List| |#1|) $) "\\spad{members(ms)} returns a list of the elements of \\spad{ms} without their multiplicity. See also \\spadfun{parts}.")) (|multiset| (($ (|List| |#1|)) "\\spad{multiset(ls)} creates a multiset with elements from \\spad{ls}.") (($ |#1|) "\\spad{multiset(s)} creates a multiset with singleton \\spad{s}.") (($) "\\spad{multiset()}\\$\\spad{D} creates an empty multiset of domain \\spad{D}."))) 
-((-4519 . T) (-4509 . T) (-4520 . T)) 
+((-4521 . T) (-4511 . T) (-4522 . T)) 
 ((|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-1090))) (-12 (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1090))))) 
 (-728) 
 ((|constructor| (NIL "\\spadtype{MoreSystemCommands} implements an interface with the system command facility. These are the commands that are issued from source files or the system interpreter and they start with a close parenthesis,{} \\spadignore{e.g.} the \"what\" commands.")) (|systemCommand| (((|Void|) (|String|)) "\\spad{systemCommand(cmd)} takes the string \\spadvar{\\spad{cmd}} and passes it to the runtime environment for execution as a system command. Although various things may be printed,{} no usable value is returned."))) 
@@ -2850,7 +2850,7 @@ NIL
 NIL 
 (-730 |Coef| |Var|) 
 ((|constructor| (NIL "\\spadtype{MultivariateTaylorSeriesCategory} is the most general multivariate Taylor series category.")) (|integrate| (($ $ |#2|) "\\spad{integrate(f,{}x)} returns the anti-derivative of the power series \\spad{f(x)} with respect to the variable \\spad{x} with constant coefficient 1. We may integrate a series when we can divide coefficients by integers.")) (|polynomial| (((|Polynomial| |#1|) $ (|NonNegativeInteger|) (|NonNegativeInteger|)) "\\spad{polynomial(f,{}k1,{}k2)} returns a polynomial consisting of the sum of all terms of \\spad{f} of degree \\spad{d} with \\spad{k1 <= d <= k2}.") (((|Polynomial| |#1|) $ (|NonNegativeInteger|)) "\\spad{polynomial(f,{}k)} returns a polynomial consisting of the sum of all terms of \\spad{f} of degree \\spad{<= k}.")) (|order| (((|NonNegativeInteger|) $ |#2| (|NonNegativeInteger|)) "\\spad{order(f,{}x,{}n)} returns \\spad{min(n,{}order(f,{}x))}.") (((|NonNegativeInteger|) $ |#2|) "\\spad{order(f,{}x)} returns the order of \\spad{f} viewed as a series in \\spad{x} may result in an infinite loop if \\spad{f} has no non-zero terms.")) (|monomial| (($ $ (|List| |#2|) (|List| (|NonNegativeInteger|))) "\\spad{monomial(a,{}[x1,{}x2,{}...,{}xk],{}[n1,{}n2,{}...,{}nk])} returns \\spad{a * x1^n1 * ... * xk^nk}.") (($ $ |#2| (|NonNegativeInteger|)) "\\spad{monomial(a,{}x,{}n)} returns \\spad{a*x^n}.")) (|extend| (($ $ (|NonNegativeInteger|)) "\\spad{extend(f,{}n)} causes all terms of \\spad{f} of degree \\spad{<= n} to be computed.")) (|coefficient| (($ $ (|List| |#2|) (|List| (|NonNegativeInteger|))) "\\spad{coefficient(f,{}[x1,{}x2,{}...,{}xk],{}[n1,{}n2,{}...,{}nk])} returns the coefficient of \\spad{x1^n1 * ... * xk^nk} in \\spad{f}.") (($ $ |#2| (|NonNegativeInteger|)) "\\spad{coefficient(f,{}x,{}n)} returns the coefficient of \\spad{x^n} in \\spad{f}."))) 
-(((-4521 "*") |has| |#1| (-172)) (-4512 |has| |#1| (-558)) (-4514 . T) (-4513 . T) (-4516 . T)) 
+(((-4523 "*") |has| |#1| (-172)) (-4514 |has| |#1| (-558)) (-4516 . T) (-4515 . T) (-4518 . T)) 
 NIL 
 (-731 OV E R P) 
 ((|constructor| (NIL "This is the top level package for doing multivariate factorization over basic domains like \\spadtype{Integer} or \\spadtype{Fraction Integer}.")) (|factor| (((|Factored| (|SparseUnivariatePolynomial| |#4|)) (|SparseUnivariatePolynomial| |#4|)) "\\spad{factor(p)} factors the multivariate polynomial \\spad{p} over its coefficient domain where \\spad{p} is represented as a univariate polynomial with multivariate coefficients") (((|Factored| |#4|) |#4|) "\\spad{factor(p)} factors the multivariate polynomial \\spad{p} over its coefficient domain"))) 
@@ -2862,19 +2862,19 @@ NIL
 NIL 
 (-733 |q| R) 
 ((|constructor| (NIL "This domain has no description"))) 
-((-4517 |has| |#2| (-558)) (-4511 |has| |#2| (-558)) (-4516 -2198 (|has| |#2| (-478)) (|has| |#2| (-1047))) (-4514 |has| |#2| (-172)) (-4513 |has| |#2| (-172)) ((-4521 "*") |has| |#2| (-558)) (-4512 |has| |#2| (-558))) 
-((|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (QUOTE (-1047))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-478))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (-2198 (|HasCategory| |#2| (QUOTE (-478))) (|HasCategory| |#2| (QUOTE (-558)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2198 (|HasCategory| |#2| (QUOTE (-478))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| |#2| (QUOTE (-21))) (|HasCategory| |#2| (QUOTE (-25))) (|HasCategory| |#2| (QUOTE (-1102))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-558)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-558)))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-558))))) (|HasCategory| $ (QUOTE (-1047))) (|HasCategory| $ (LIST (QUOTE -1037) (QUOTE (-568))))) 
+((-4519 |has| |#2| (-558)) (-4513 |has| |#2| (-558)) (-4518 -2199 (|has| |#2| (-478)) (|has| |#2| (-1047))) (-4516 |has| |#2| (-172)) (-4515 |has| |#2| (-172)) ((-4523 "*") |has| |#2| (-558)) (-4514 |has| |#2| (-558))) 
+((|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (QUOTE (-1047))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-478))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (-2199 (|HasCategory| |#2| (QUOTE (-478))) (|HasCategory| |#2| (QUOTE (-558)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2199 (|HasCategory| |#2| (QUOTE (-478))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| |#2| (QUOTE (-21))) (|HasCategory| |#2| (QUOTE (-25))) (|HasCategory| |#2| (QUOTE (-1102))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-558)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-558)))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-558))))) (|HasCategory| $ (QUOTE (-1047))) (|HasCategory| $ (LIST (QUOTE -1037) (QUOTE (-568))))) 
 (-734 |x| R) 
 ((|constructor| (NIL "This domain has no description")) (|fmecg| (($ $ (|NonNegativeInteger|) |#2| $) "\\spad{fmecg(p1,{}e,{}r,{}p2)} finds \\spad{x} : \\spad{p1} - \\spad{r} * x**e * \\spad{p2}")) (|coerce| (($ (|Variable| |#1|)) "\\spad{coerce(x)} converts the variable \\spad{x} to a univariate polynomial."))) 
-(((-4521 "*") |has| |#2| (-172)) (-4512 |has| |#2| (-558)) (-4515 |has| |#2| (-365)) (-4517 |has| |#2| (-6 -4517)) (-4514 . T) (-4513 . T) (-4516 . T)) 
-((|HasCategory| |#2| (QUOTE (-904))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-172))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-558)))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#2| (QUOTE (-842))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1136))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasCategory| |#2| (QUOTE (-225))) (|HasAttribute| |#2| (QUOTE -4517)) (|HasCategory| |#2| (QUOTE (-453))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2198 (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2198 (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (|HasCategory| |#2| (QUOTE (-148))))) 
+(((-4523 "*") |has| |#2| (-172)) (-4514 |has| |#2| (-558)) (-4517 |has| |#2| (-365)) (-4519 |has| |#2| (-6 -4519)) (-4516 . T) (-4515 . T) (-4518 . T)) 
+((|HasCategory| |#2| (QUOTE (-904))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-172))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-558)))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#2| (QUOTE (-842))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1136))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasCategory| |#2| (QUOTE (-225))) (|HasAttribute| |#2| (QUOTE -4519)) (|HasCategory| |#2| (QUOTE (-453))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2199 (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-904)))) (-2199 (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (|HasCategory| |#2| (QUOTE (-148))))) 
 (-735 S R) 
 ((|constructor| (NIL "NonAssociativeAlgebra is the category of non associative algebras (modules which are themselves non associative rngs).\\spad{\\br} \\blankline Axioms\\spad{\\br} \\tab{5}\\spad{r*}(a*b) = (r*a)\\spad{*b} = a*(\\spad{r*b})")) (|plenaryPower| (($ $ (|PositiveInteger|)) "\\spad{plenaryPower(a,{}n)} is recursively defined to be \\spad{plenaryPower(a,{}n-1)*plenaryPower(a,{}n-1)} for \\spad{n>1} and \\spad{a} for \\spad{n=1}."))) 
 NIL 
 NIL 
 (-736 R) 
 ((|constructor| (NIL "NonAssociativeAlgebra is the category of non associative algebras (modules which are themselves non associative rngs).\\spad{\\br} \\blankline Axioms\\spad{\\br} \\tab{5}\\spad{r*}(a*b) = (r*a)\\spad{*b} = a*(\\spad{r*b})")) (|plenaryPower| (($ $ (|PositiveInteger|)) "\\spad{plenaryPower(a,{}n)} is recursively defined to be \\spad{plenaryPower(a,{}n-1)*plenaryPower(a,{}n-1)} for \\spad{n>1} and \\spad{a} for \\spad{n=1}."))) 
-((-4514 . T) (-4513 . T)) 
+((-4516 . T) (-4515 . T)) 
 NIL 
 (-737) 
 ((|constructor| (NIL "This package uses the NAG Library to compute the zeros of a polynomial with real or complex coefficients.")) (|c02agf| (((|Result|) (|Matrix| (|DoubleFloat|)) (|Integer|) (|Boolean|) (|Integer|)) "\\spad{c02agf(a,{}n,{}scale,{}ifail)} finds all the roots of a real polynomial equation,{} using a variant of Laguerre\\spad{'s} Method. See \\downlink{Manual Page}{manpageXXc02agf}.")) (|c02aff| (((|Result|) (|Matrix| (|DoubleFloat|)) (|Integer|) (|Boolean|) (|Integer|)) "\\spad{c02aff(a,{}n,{}scale,{}ifail)} finds all the roots of a complex polynomial equation,{} using a variant of Laguerre\\spad{'s} Method. See \\downlink{Manual Page}{manpageXXc02aff}."))) 
@@ -2982,7 +2982,7 @@ NIL
 NIL 
 (-763) 
 ((|constructor| (NIL "\\spadtype{NonNegativeInteger} provides functions for non-negative integers.")) (|commutative| ((|attribute| "*") "\\spad{commutative(\"*\")} means multiplication is commutative,{} that is,{} \\spad{x*y = y*x}.")) (|random| (($ $) "\\spad{random(n)} returns a random integer from 0 to \\spad{n-1}.")) (|shift| (($ $ (|Integer|)) "\\spad{shift(a,{}i)} shift \\spad{a} by \\spad{i} bits.")) (|exquo| (((|Union| $ "failed") $ $) "\\spad{exquo(a,{}b)} returns the quotient of \\spad{a} and \\spad{b},{} or \"failed\" if \\spad{b} is zero or \\spad{a} rem \\spad{b} is zero.")) (|divide| (((|Record| (|:| |quotient| $) (|:| |remainder| $)) $ $) "\\spad{divide(a,{}b)} returns a record containing both remainder and quotient.")) (|gcd| (($ $ $) "\\spad{gcd(a,{}b)} computes the greatest common divisor of two non negative integers \\spad{a} and \\spad{b}.")) (|rem| (($ $ $) "\\spad{a rem b} returns the remainder of \\spad{a} and \\spad{b}.")) (|quo| (($ $ $) "\\spad{a quo b} returns the quotient of \\spad{a} and \\spad{b},{} forgetting the remainder."))) 
-(((-4521 "*") . T)) 
+(((-4523 "*") . T)) 
 NIL 
 (-764 R -1478) 
 ((|constructor| (NIL "NonLinearFirstOrderODESolver provides a function for finding closed form first integrals of nonlinear ordinary differential equations of order 1.")) (|solve| (((|Union| |#2| "failed") |#2| |#2| (|BasicOperator|) (|Symbol|)) "\\spad{solve(M(x,{}y),{} N(x,{}y),{} y,{} x)} returns \\spad{F(x,{}y)} such that \\spad{F(x,{}y) = c} for a constant \\spad{c} is a first integral of the equation \\spad{M(x,{}y) dx + N(x,{}y) dy = 0},{} or \"failed\" if no first-integral can be found."))) 
@@ -3010,13 +3010,13 @@ NIL
 NIL 
 (-770 -1478) 
 ((|constructor| (NIL "This is an implmenentation of the Nottingham Group"))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-771 BP E OV R P) 
 ((|constructor| (NIL "Package for the determination of the coefficients in the lifting process. Used by \\spadtype{MultivariateLifting}. This package will work for every euclidean domain \\spad{R} which has property \\spad{F},{} \\spadignore{i.e.} there exists a factor operation in \\spad{R[x]}.")) (|listexp| (((|List| (|NonNegativeInteger|)) |#1|) "\\spad{listexp }\\undocumented")) (|npcoef| (((|Record| (|:| |deter| (|List| (|SparseUnivariatePolynomial| |#5|))) (|:| |dterm| (|List| (|List| (|Record| (|:| |expt| (|NonNegativeInteger|)) (|:| |pcoef| |#5|))))) (|:| |nfacts| (|List| |#1|)) (|:| |nlead| (|List| |#5|))) (|SparseUnivariatePolynomial| |#5|) (|List| |#1|) (|List| |#5|)) "\\spad{npcoef }\\undocumented"))) 
 NIL 
 NIL 
-(-772 K |PolyRing| E -2570) 
+(-772 K |PolyRing| E -1965) 
 ((|constructor| (NIL "The following is part of the PAFF package"))) 
 NIL 
 NIL 
@@ -3026,27 +3026,27 @@ NIL
 NIL 
 (-774 K) 
 ((|constructor| (NIL "This domain is part of the PAFF package"))) 
-(((-4521 "*") . T) (-4512 . T) (-4511 . T) (-4517 . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-1102))) (|HasSignature| |#1| (LIST (QUOTE *) (LIST (|devaluate| |#1|) (QUOTE (-568)) (|devaluate| |#1|)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasSignature| |#1| (LIST (QUOTE *) (LIST (|devaluate| |#1|) (QUOTE (-568)) (|devaluate| |#1|))))) (|HasCategory| (-2 (|:| |k| (-568)) (|:| |c| |#1|)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasSignature| |#1| (LIST (QUOTE **) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (QUOTE (-568))))) (-12 (|HasSignature| |#1| (LIST (QUOTE **) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (QUOTE (-568))))) (|HasSignature| |#1| (LIST (QUOTE -2745) (LIST (|devaluate| |#1|) (QUOTE (-1161)))))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| (-568) (QUOTE (-842))) (|HasCategory| (-2 (|:| |k| (-568)) (|:| |c| |#1|)) (QUOTE (-1090))) (-12 (|HasCategory| (-2 (|:| |k| (-568)) (|:| |c| |#1|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE |k|) (QUOTE (-568))) (LIST (QUOTE |:|) (QUOTE |c|) (|devaluate| |#1|))))) (|HasCategory| (-2 (|:| |k| (-568)) (|:| |c| |#1|)) (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568)))))) 
+(((-4523 "*") . T) (-4514 . T) (-4513 . T) (-4519 . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| (-568) (QUOTE (-1102))) (|HasSignature| |#1| (LIST (QUOTE *) (LIST (|devaluate| |#1|) (QUOTE (-568)) (|devaluate| |#1|)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasSignature| |#1| (LIST (QUOTE *) (LIST (|devaluate| |#1|) (QUOTE (-568)) (|devaluate| |#1|))))) (|HasCategory| (-2 (|:| |k| (-568)) (|:| |c| |#1|)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasSignature| |#1| (LIST (QUOTE **) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (QUOTE (-568))))) (-12 (|HasSignature| |#1| (LIST (QUOTE **) (LIST (|devaluate| |#1|) (|devaluate| |#1|) (QUOTE (-568))))) (|HasSignature| |#1| (LIST (QUOTE -2747) (LIST (|devaluate| |#1|) (QUOTE (-1161)))))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| (-568) (QUOTE (-842))) (|HasCategory| (-2 (|:| |k| (-568)) (|:| |c| |#1|)) (QUOTE (-1090))) (-12 (|HasCategory| (-2 (|:| |k| (-568)) (|:| |c| |#1|)) (LIST (QUOTE -303) (LIST (QUOTE -2) (LIST (QUOTE |:|) (QUOTE |k|) (QUOTE (-568))) (LIST (QUOTE |:|) (QUOTE |c|) (|devaluate| |#1|))))) (|HasCategory| (-2 (|:| |k| (-568)) (|:| |c| |#1|)) (QUOTE (-1090)))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568)))))) 
 (-775 R |VarSet|) 
 ((|constructor| (NIL "A post-facto extension for \\axiomType{\\spad{SMP}} in order to speed up operations related to pseudo-division and \\spad{gcd}. This domain is based on the \\axiomType{NSUP} constructor which is itself a post-facto extension of the \\axiomType{SUP} constructor."))) 
-(((-4521 "*") |has| |#1| (-172)) (-4512 |has| |#1| (-558)) (-4517 |has| |#1| (-6 -4517)) (-4514 . T) (-4513 . T) (-4516 . T)) 
-((|HasCategory| |#1| (QUOTE (-904))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (-2198 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-1161)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-1161))))) (|HasCategory| |#1| (QUOTE (-365))) (-12 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-1161))))) (-2198 (-12 (|HasCategory| |#1| (LIST (QUOTE -43) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-1161)))) (-3044 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-1161)))))) (-2198 (-12 (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-1161)))) (-3044 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568)))))) (-3044 (|HasCategory| |#1| (LIST (QUOTE -43) (QUOTE (-568)))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -43) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-1161)))) (-3044 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568)))))) (-3044 (|HasCategory| |#1| (QUOTE (-550))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-1161)))) (-3044 (|HasCategory| |#1| (LIST (QUOTE -993) (QUOTE (-568))))))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasAttribute| |#1| (QUOTE -4517)) (|HasCategory| |#1| (QUOTE (-453))) (-2198 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2198 (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2198 (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-148))))) 
+(((-4523 "*") |has| |#1| (-172)) (-4514 |has| |#1| (-558)) (-4519 |has| |#1| (-6 -4519)) (-4516 . T) (-4515 . T) (-4518 . T)) 
+((|HasCategory| |#1| (QUOTE (-904))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (-2199 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-1161)))) (-12 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-1161))))) (|HasCategory| |#1| (QUOTE (-365))) (-12 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-1161))))) (-2199 (-12 (|HasCategory| |#1| (LIST (QUOTE -43) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-1161)))) (-3046 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-1161)))))) (-2199 (-12 (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-1161)))) (-3046 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568)))))) (-3046 (|HasCategory| |#1| (LIST (QUOTE -43) (QUOTE (-568)))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -43) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-1161)))) (-3046 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568)))))) (-3046 (|HasCategory| |#1| (QUOTE (-550))))) (-12 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-1161)))) (-3046 (|HasCategory| |#1| (LIST (QUOTE -993) (QUOTE (-568))))))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasAttribute| |#1| (QUOTE -4519)) (|HasCategory| |#1| (QUOTE (-453))) (-2199 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2199 (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2199 (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-148))))) 
 (-776 R S) 
 ((|constructor| (NIL "This package lifts a mapping from coefficient rings \\spad{R} to \\spad{S} to a mapping from sparse univariate polynomial over \\spad{R} to a sparse univariate polynomial over \\spad{S}. Note that the mapping is assumed to send zero to zero,{} since it will only be applied to the non-zero coefficients of the polynomial.")) (|map| (((|NewSparseUnivariatePolynomial| |#2|) (|Mapping| |#2| |#1|) (|NewSparseUnivariatePolynomial| |#1|)) "\\axiom{map(func,{} poly)} creates a new polynomial by applying func to every non-zero coefficient of the polynomial poly."))) 
 NIL 
 NIL 
 (-777 R) 
 ((|constructor| (NIL "A post-facto extension for \\axiomType{SUP} in order to speed up operations related to pseudo-division and \\spad{gcd} for both \\axiomType{SUP} and,{} consequently,{} \\axiomType{NSMP}.")) (|halfExtendedResultant2| (((|Record| (|:| |resultant| |#1|) (|:| |coef2| $)) $ $) "\\axiom{\\spad{halfExtendedResultant2}(a,{}\\spad{b})} returns \\axiom{[\\spad{r},{}ca]} such that \\axiom{extendedResultant(a,{}\\spad{b})} returns \\axiom{[\\spad{r},{}ca,{} \\spad{cb}]}")) (|halfExtendedResultant1| (((|Record| (|:| |resultant| |#1|) (|:| |coef1| $)) $ $) "\\axiom{\\spad{halfExtendedResultant1}(a,{}\\spad{b})} returns \\axiom{[\\spad{r},{}ca]} such that \\axiom{extendedResultant(a,{}\\spad{b})} returns \\axiom{[\\spad{r},{}ca,{} \\spad{cb}]}")) (|extendedResultant| (((|Record| (|:| |resultant| |#1|) (|:| |coef1| $) (|:| |coef2| $)) $ $) "\\axiom{extendedResultant(a,{}\\spad{b})} returns \\axiom{[\\spad{r},{}ca,{}\\spad{cb}]} such that \\axiom{\\spad{r}} is the resultant of \\axiom{a} and \\axiom{\\spad{b}} and \\axiom{\\spad{r} = ca * a + \\spad{cb} * \\spad{b}}")) (|halfExtendedSubResultantGcd2| (((|Record| (|:| |gcd| $) (|:| |coef2| $)) $ $) "\\axiom{\\spad{halfExtendedSubResultantGcd2}(a,{}\\spad{b})} returns \\axiom{[\\spad{g},{}\\spad{cb}]} such that \\axiom{extendedSubResultantGcd(a,{}\\spad{b})} returns \\axiom{[\\spad{g},{}ca,{} \\spad{cb}]}")) (|halfExtendedSubResultantGcd1| (((|Record| (|:| |gcd| $) (|:| |coef1| $)) $ $) "\\axiom{\\spad{halfExtendedSubResultantGcd1}(a,{}\\spad{b})} returns \\axiom{[\\spad{g},{}ca]} such that \\axiom{extendedSubResultantGcd(a,{}\\spad{b})} returns \\axiom{[\\spad{g},{}ca,{} \\spad{cb}]}")) (|extendedSubResultantGcd| (((|Record| (|:| |gcd| $) (|:| |coef1| $) (|:| |coef2| $)) $ $) "\\axiom{extendedSubResultantGcd(a,{}\\spad{b})} returns \\axiom{[\\spad{g},{}ca,{} \\spad{cb}]} such that \\axiom{\\spad{g}} is a \\spad{gcd} of \\axiom{a} and \\axiom{\\spad{b}} in \\axiom{\\spad{R^}(\\spad{-1}) \\spad{P}} and \\axiom{\\spad{g} = ca * a + \\spad{cb} * \\spad{b}}")) (|lastSubResultant| (($ $ $) "\\axiom{lastSubResultant(a,{}\\spad{b})} returns \\axiom{resultant(a,{}\\spad{b})} if \\axiom{a} and \\axiom{\\spad{b}} has no non-trivial \\spad{gcd} in \\axiom{\\spad{R^}(\\spad{-1}) \\spad{P}} otherwise the non-zero sub-resultant with smallest index.")) (|subResultantsChain| (((|List| $) $ $) "\\axiom{subResultantsChain(a,{}\\spad{b})} returns the list of the non-zero sub-resultants of \\axiom{a} and \\axiom{\\spad{b}} sorted by increasing degree.")) (|lazyPseudoQuotient| (($ $ $) "\\axiom{lazyPseudoQuotient(a,{}\\spad{b})} returns \\axiom{\\spad{q}} if \\axiom{lazyPseudoDivide(a,{}\\spad{b})} returns \\axiom{[\\spad{c},{}\\spad{g},{}\\spad{q},{}\\spad{r}]}")) (|lazyPseudoDivide| (((|Record| (|:| |coef| |#1|) (|:| |gap| (|NonNegativeInteger|)) (|:| |quotient| $) (|:| |remainder| $)) $ $) "\\axiom{lazyPseudoDivide(a,{}\\spad{b})} returns \\axiom{[\\spad{c},{}\\spad{g},{}\\spad{q},{}\\spad{r}]} such that \\axiom{\\spad{c^n} * a = \\spad{q*b} \\spad{+r}} and \\axiom{lazyResidueClass(a,{}\\spad{b})} returns \\axiom{[\\spad{r},{}\\spad{c},{}\\spad{n}]} where \\axiom{\\spad{n} + \\spad{g} = max(0,{} degree(\\spad{b}) - degree(a) + 1)}.")) (|lazyPseudoRemainder| (($ $ $) "\\axiom{lazyPseudoRemainder(a,{}\\spad{b})} returns \\axiom{\\spad{r}} if \\axiom{lazyResidueClass(a,{}\\spad{b})} returns \\axiom{[\\spad{r},{}\\spad{c},{}\\spad{n}]}. This lazy pseudo-remainder is computed by means of the fmecg from NewSparseUnivariatePolynomial operation.")) (|lazyResidueClass| (((|Record| (|:| |polnum| $) (|:| |polden| |#1|) (|:| |power| (|NonNegativeInteger|))) $ $) "\\axiom{lazyResidueClass(a,{}\\spad{b})} returns \\axiom{[\\spad{r},{}\\spad{c},{}\\spad{n}]} such that \\axiom{\\spad{r}} is reduced \\spad{w}.\\spad{r}.\\spad{t}. \\axiom{\\spad{b}} and \\axiom{\\spad{b}} divides \\axiom{\\spad{c^n} * a - \\spad{r}} where \\axiom{\\spad{c}} is \\axiom{leadingCoefficient(\\spad{b})} and \\axiom{\\spad{n}} is as small as possible with the previous properties.")) (|monicModulo| (($ $ $) "\\axiom{monicModulo(a,{}\\spad{b})} returns \\axiom{\\spad{r}} such that \\axiom{\\spad{r}} is reduced \\spad{w}.\\spad{r}.\\spad{t}. \\axiom{\\spad{b}} and \\axiom{\\spad{b}} divides \\axiom{a \\spad{-r}} where \\axiom{\\spad{b}} is monic.")) (|fmecg| (($ $ (|NonNegativeInteger|) |#1| $) "\\axiom{fmecg(\\spad{p1},{}\\spad{e},{}\\spad{r},{}\\spad{p2})} returns \\axiom{\\spad{p1} - \\spad{r} * x**e * \\spad{p2}} where \\axiom{\\spad{x}} is \\axiom{monomial(1,{}1)}"))) 
-(((-4521 "*") |has| |#1| (-172)) (-4512 |has| |#1| (-558)) (-4515 |has| |#1| (-365)) (-4517 |has| |#1| (-6 -4517)) (-4514 . T) (-4513 . T) (-4516 . T)) 
-((|HasCategory| |#1| (QUOTE (-904))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (-2198 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558)))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-1136))) (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasCategory| |#1| (QUOTE (-225))) (|HasAttribute| |#1| (QUOTE -4517)) (|HasCategory| |#1| (QUOTE (-453))) (-2198 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2198 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2198 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-148))))) 
+(((-4523 "*") |has| |#1| (-172)) (-4514 |has| |#1| (-558)) (-4517 |has| |#1| (-365)) (-4519 |has| |#1| (-6 -4519)) (-4516 . T) (-4515 . T) (-4518 . T)) 
+((|HasCategory| |#1| (QUOTE (-904))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (-2199 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558)))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| (-1075) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-1136))) (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasCategory| |#1| (QUOTE (-225))) (|HasAttribute| |#1| (QUOTE -4519)) (|HasCategory| |#1| (QUOTE (-453))) (-2199 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2199 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2199 (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-148))))) 
 (-778 R) 
 ((|constructor| (NIL "This package provides polynomials as functions on a ring.")) (|eulerE| ((|#1| (|NonNegativeInteger|) |#1|) "\\spad{eulerE(n,{}r)} \\undocumented")) (|bernoulliB| ((|#1| (|NonNegativeInteger|) |#1|) "\\spad{bernoulliB(n,{}r)} \\undocumented")) (|cyclotomic| ((|#1| (|NonNegativeInteger|) |#1|) "\\spad{cyclotomic(n,{}r)} \\undocumented"))) 
 NIL 
 ((|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568)))))) 
 (-779 R E V P) 
 ((|constructor| (NIL "The category of normalized triangular sets. A triangular set \\spad{ts} is said normalized if for every algebraic variable \\spad{v} of \\spad{ts} the polynomial \\spad{select(ts,{}v)} is normalized \\spad{w}.\\spad{r}.\\spad{t}. every polynomial in \\spad{collectUnder(ts,{}v)}. A polynomial \\spad{p} is said normalized \\spad{w}.\\spad{r}.\\spad{t}. a non-constant polynomial \\spad{q} if \\spad{p} is constant or \\spad{degree(p,{}mdeg(q)) = 0} and \\spad{init(p)} is normalized \\spad{w}.\\spad{r}.\\spad{t}. \\spad{q}. One of the important features of normalized triangular sets is that they are regular sets."))) 
-((-4520 . T) (-4519 . T) (-3973 . T)) 
+((-4522 . T) (-4521 . T) (-3973 . T)) 
 NIL 
 (-780 S) 
 ((|constructor| (NIL "Numeric provides real and complex numerical evaluation functions for various symbolic types.")) (|numericIfCan| (((|Union| (|Float|) "failed") (|Expression| |#1|) (|PositiveInteger|)) "\\spad{numericIfCan(x,{} n)} returns a real approximation of \\spad{x} up to \\spad{n} decimal places,{} or \"failed\" if \\axiom{\\spad{x}} is not a constant.") (((|Union| (|Float|) "failed") (|Expression| |#1|)) "\\spad{numericIfCan(x)} returns a real approximation of \\spad{x},{} or \"failed\" if \\axiom{\\spad{x}} is not a constant.") (((|Union| (|Float|) "failed") (|Fraction| (|Polynomial| |#1|)) (|PositiveInteger|)) "\\spad{numericIfCan(x,{}n)} returns a real approximation of \\spad{x} up to \\spad{n} decimal places,{} or \"failed\" if \\axiom{\\spad{x}} is not a constant.") (((|Union| (|Float|) "failed") (|Fraction| (|Polynomial| |#1|))) "\\spad{numericIfCan(x)} returns a real approximation of \\spad{x},{} or \"failed\" if \\axiom{\\spad{x}} is not a constant.") (((|Union| (|Float|) "failed") (|Polynomial| |#1|) (|PositiveInteger|)) "\\spad{numericIfCan(x,{}n)} returns a real approximation of \\spad{x} up to \\spad{n} decimal places,{} or \"failed\" if \\axiom{\\spad{x}} is not a constant.") (((|Union| (|Float|) "failed") (|Polynomial| |#1|)) "\\spad{numericIfCan(x)} returns a real approximation of \\spad{x},{} or \"failed\" if \\axiom{\\spad{x}} is not a constant.")) (|complexNumericIfCan| (((|Union| (|Complex| (|Float|)) "failed") (|Expression| (|Complex| |#1|)) (|PositiveInteger|)) "\\spad{complexNumericIfCan(x,{} n)} returns a complex approximation of \\spad{x} up to \\spad{n} decimal places,{} or \"failed\" if \\axiom{\\spad{x}} is not a constant.") (((|Union| (|Complex| (|Float|)) "failed") (|Expression| (|Complex| |#1|))) "\\spad{complexNumericIfCan(x)} returns a complex approximation of \\spad{x},{} or \"failed\" if \\axiom{\\spad{x}} is not a constant.") (((|Union| (|Complex| (|Float|)) "failed") (|Expression| |#1|) (|PositiveInteger|)) "\\spad{complexNumericIfCan(x,{} n)} returns a complex approximation of \\spad{x} up to \\spad{n} decimal places,{} or \"failed\" if \\axiom{\\spad{x}} is not a constant.") (((|Union| (|Complex| (|Float|)) "failed") (|Expression| |#1|)) "\\spad{complexNumericIfCan(x)} returns a complex approximation of \\spad{x},{} or \"failed\" if \\axiom{\\spad{x}} is not a constant.") (((|Union| (|Complex| (|Float|)) "failed") (|Fraction| (|Polynomial| (|Complex| |#1|))) (|PositiveInteger|)) "\\spad{complexNumericIfCan(x,{} n)} returns a complex approximation of \\spad{x} up to \\spad{n} decimal places,{} or \"failed\" if \\axiom{\\spad{x}} is not a constant.") (((|Union| (|Complex| (|Float|)) "failed") (|Fraction| (|Polynomial| (|Complex| |#1|)))) "\\spad{complexNumericIfCan(x)} returns a complex approximation of \\spad{x},{} or \"failed\" if \\axiom{\\spad{x}} is not a constant.") (((|Union| (|Complex| (|Float|)) "failed") (|Fraction| (|Polynomial| |#1|)) (|PositiveInteger|)) "\\spad{complexNumericIfCan(x,{} n)} returns a complex approximation of \\spad{x},{} or \"failed\" if \\axiom{\\spad{x}} is not a constant.") (((|Union| (|Complex| (|Float|)) "failed") (|Fraction| (|Polynomial| |#1|))) "\\spad{complexNumericIfCan(x)} returns a complex approximation of \\spad{x},{} or \"failed\" if \\axiom{\\spad{x}} is not a constant.") (((|Union| (|Complex| (|Float|)) "failed") (|Polynomial| |#1|) (|PositiveInteger|)) "\\spad{complexNumericIfCan(x,{} n)} returns a complex approximation of \\spad{x} up to \\spad{n} decimal places,{} or \"failed\" if \\axiom{\\spad{x}} is not a constant.") (((|Union| (|Complex| (|Float|)) "failed") (|Polynomial| |#1|)) "\\spad{complexNumericIfCan(x)} returns a complex approximation of \\spad{x},{} or \"failed\" if \\axiom{\\spad{x}} is not a constant.") (((|Union| (|Complex| (|Float|)) "failed") (|Polynomial| (|Complex| |#1|)) (|PositiveInteger|)) "\\spad{complexNumericIfCan(x,{} n)} returns a complex approximation of \\spad{x} up to \\spad{n} decimal places,{} or \"failed\" if \\axiom{\\spad{x}} is not a constant.") (((|Union| (|Complex| (|Float|)) "failed") (|Polynomial| (|Complex| |#1|))) "\\spad{complexNumericIfCan(x)} returns a complex approximation of \\spad{x},{} or \"failed\" if \\axiom{\\spad{x}} is not constant.")) (|complexNumeric| (((|Complex| (|Float|)) (|Expression| (|Complex| |#1|)) (|PositiveInteger|)) "\\spad{complexNumeric(x,{} n)} returns a complex approximation of \\spad{x} up to \\spad{n} decimal places.") (((|Complex| (|Float|)) (|Expression| (|Complex| |#1|))) "\\spad{complexNumeric(x)} returns a complex approximation of \\spad{x}.") (((|Complex| (|Float|)) (|Expression| |#1|) (|PositiveInteger|)) "\\spad{complexNumeric(x,{} n)} returns a complex approximation of \\spad{x} up to \\spad{n} decimal places.") (((|Complex| (|Float|)) (|Expression| |#1|)) "\\spad{complexNumeric(x)} returns a complex approximation of \\spad{x}.") (((|Complex| (|Float|)) (|Fraction| (|Polynomial| (|Complex| |#1|))) (|PositiveInteger|)) "\\spad{complexNumeric(x,{} n)} returns a complex approximation of \\spad{x} up to \\spad{n} decimal places.") (((|Complex| (|Float|)) (|Fraction| (|Polynomial| (|Complex| |#1|)))) "\\spad{complexNumeric(x)} returns a complex approximation of \\spad{x}.") (((|Complex| (|Float|)) (|Fraction| (|Polynomial| |#1|)) (|PositiveInteger|)) "\\spad{complexNumeric(x,{} n)} returns a complex approximation of \\spad{x}") (((|Complex| (|Float|)) (|Fraction| (|Polynomial| |#1|))) "\\spad{complexNumeric(x)} returns a complex approximation of \\spad{x}.") (((|Complex| (|Float|)) (|Polynomial| |#1|) (|PositiveInteger|)) "\\spad{complexNumeric(x,{} n)} returns a complex approximation of \\spad{x} up to \\spad{n} decimal places.") (((|Complex| (|Float|)) (|Polynomial| |#1|)) "\\spad{complexNumeric(x)} returns a complex approximation of \\spad{x}.") (((|Complex| (|Float|)) (|Polynomial| (|Complex| |#1|)) (|PositiveInteger|)) "\\spad{complexNumeric(x,{} n)} returns a complex approximation of \\spad{x} up to \\spad{n} decimal places.") (((|Complex| (|Float|)) (|Polynomial| (|Complex| |#1|))) "\\spad{complexNumeric(x)} returns a complex approximation of \\spad{x}.") (((|Complex| (|Float|)) (|Complex| |#1|) (|PositiveInteger|)) "\\spad{complexNumeric(x,{} n)} returns a complex approximation of \\spad{x} up to \\spad{n} decimal places.") (((|Complex| (|Float|)) (|Complex| |#1|)) "\\spad{complexNumeric(x)} returns a complex approximation of \\spad{x}.") (((|Complex| (|Float|)) |#1| (|PositiveInteger|)) "\\spad{complexNumeric(x,{} n)} returns a complex approximation of \\spad{x} up to \\spad{n} decimal places.") (((|Complex| (|Float|)) |#1|) "\\spad{complexNumeric(x)} returns a complex approximation of \\spad{x}.")) (|numeric| (((|Float|) (|Expression| |#1|) (|PositiveInteger|)) "\\spad{numeric(x,{} n)} returns a real approximation of \\spad{x} up to \\spad{n} decimal places.") (((|Float|) (|Expression| |#1|)) "\\spad{numeric(x)} returns a real approximation of \\spad{x}.") (((|Float|) (|Fraction| (|Polynomial| |#1|)) (|PositiveInteger|)) "\\spad{numeric(x,{}n)} returns a real approximation of \\spad{x} up to \\spad{n} decimal places.") (((|Float|) (|Fraction| (|Polynomial| |#1|))) "\\spad{numeric(x)} returns a real approximation of \\spad{x}.") (((|Float|) (|Polynomial| |#1|) (|PositiveInteger|)) "\\spad{numeric(x,{}n)} returns a real approximation of \\spad{x} up to \\spad{n} decimal places.") (((|Float|) (|Polynomial| |#1|)) "\\spad{numeric(x)} returns a real approximation of \\spad{x}.") (((|Float|) |#1| (|PositiveInteger|)) "\\spad{numeric(x,{} n)} returns a real approximation of \\spad{x} up to \\spad{n} decimal places.") (((|Float|) |#1|) "\\spad{numeric(x)} returns a real approximation of \\spad{x}."))) 
@@ -3098,16 +3098,16 @@ NIL
 ((|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-550))) (|HasCategory| |#2| (QUOTE (-1056))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (QUOTE (-842))) (|HasCategory| |#2| (QUOTE (-370)))) 
 (-792 R) 
 ((|constructor| (NIL "OctonionCategory gives the categorial frame for the octonions,{} and eight-dimensional non-associative algebra,{} doubling the the quaternions in the same way as doubling the Complex numbers to get the quaternions.")) (|inv| (($ $) "\\spad{inv(o)} returns the inverse of \\spad{o} if it exists.")) (|rationalIfCan| (((|Union| (|Fraction| (|Integer|)) "failed") $) "\\spad{rationalIfCan(o)} returns the real part if all seven imaginary parts are 0,{} and \"failed\" otherwise.")) (|rational| (((|Fraction| (|Integer|)) $) "\\spad{rational(o)} returns the real part if all seven imaginary parts are 0. Error: if \\spad{o} is not rational.")) (|rational?| (((|Boolean|) $) "\\spad{rational?(o)} tests if \\spad{o} is rational,{} \\spadignore{i.e.} that all seven imaginary parts are 0.")) (|abs| ((|#1| $) "\\spad{abs(o)} computes the absolute value of an octonion,{} equal to the square root of the \\spadfunFrom{norm}{Octonion}.")) (|octon| (($ |#1| |#1| |#1| |#1| |#1| |#1| |#1| |#1|) "\\spad{octon(re,{}\\spad{ri},{}rj,{}rk,{}rE,{}rI,{}rJ,{}rK)} constructs an octonion from scalars.")) (|norm| ((|#1| $) "\\spad{norm(o)} returns the norm of an octonion,{} equal to the sum of the squares of its coefficients.")) (|imagK| ((|#1| $) "\\spad{imagK(o)} extracts the imaginary \\spad{K} part of octonion \\spad{o}.")) (|imagJ| ((|#1| $) "\\spad{imagJ(o)} extracts the imaginary \\spad{J} part of octonion \\spad{o}.")) (|imagI| ((|#1| $) "\\spad{imagI(o)} extracts the imaginary \\spad{I} part of octonion \\spad{o}.")) (|imagE| ((|#1| $) "\\spad{imagE(o)} extracts the imaginary \\spad{E} part of octonion \\spad{o}.")) (|imagk| ((|#1| $) "\\spad{imagk(o)} extracts the \\spad{k} part of octonion \\spad{o}.")) (|imagj| ((|#1| $) "\\spad{imagj(o)} extracts the \\spad{j} part of octonion \\spad{o}.")) (|imagi| ((|#1| $) "\\spad{imagi(o)} extracts the \\spad{i} part of octonion \\spad{o}.")) (|real| ((|#1| $) "\\spad{real(o)} extracts real part of octonion \\spad{o}.")) (|conjugate| (($ $) "\\spad{conjugate(o)} negates the imaginary parts \\spad{i},{}\\spad{j},{}\\spad{k},{}\\spad{E},{}\\spad{I},{}\\spad{J},{}\\spad{K} of octonian \\spad{o}."))) 
-((-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
-(-793 -2198 R OS S) 
+(-793 -2199 R OS S) 
 ((|constructor| (NIL "\\spad{OctonionCategoryFunctions2} implements functions between two octonion domains defined over different rings. The function map is used to coerce between octonion types.")) (|map| ((|#3| (|Mapping| |#4| |#2|) |#1|) "\\spad{map(f,{}u)} maps \\spad{f} onto the component parts of the octonion \\spad{u}."))) 
 NIL 
 NIL 
 (-794 R) 
 ((|constructor| (NIL "Octonion implements octonions (Cayley-Dixon algebra) over a commutative ring,{} an eight-dimensional non-associative algebra,{} doubling the quaternions in the same way as doubling the complex numbers to get the quaternions the main constructor function is octon which takes 8 arguments: the real part,{} the \\spad{i} imaginary part,{} the \\spad{j} imaginary part,{} the \\spad{k} imaginary part,{} (as with quaternions) and in addition the imaginary parts \\spad{E},{} \\spad{I},{} \\spad{J},{} \\spad{K}.")) (|octon| (($ (|Quaternion| |#1|) (|Quaternion| |#1|)) "\\spad{octon(qe,{}qE)} constructs an octonion from two quaternions using the relation \\spad{O} = \\spad{Q} + QE."))) 
-((-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (LIST (QUOTE -523) (QUOTE (-1161)) (|devaluate| |#1|))) (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (LIST (QUOTE -281) (|devaluate| |#1|) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1056))) (|HasCategory| |#1| (QUOTE (-550))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| (-999 |#1|) (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| (-999 |#1|) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (-2198 (|HasCategory| (-999 |#1|) (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (-2198 (|HasCategory| (-999 |#1|) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))))) 
+((-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (QUOTE (-370))) (|HasCategory| |#1| (LIST (QUOTE -523) (QUOTE (-1161)) (|devaluate| |#1|))) (|HasCategory| |#1| (LIST (QUOTE -303) (|devaluate| |#1|))) (|HasCategory| |#1| (LIST (QUOTE -281) (|devaluate| |#1|) (|devaluate| |#1|))) (|HasCategory| |#1| (QUOTE (-1056))) (|HasCategory| |#1| (QUOTE (-550))) (|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| (-999 |#1|) (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| (-999 |#1|) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (-2199 (|HasCategory| (-999 |#1|) (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (-2199 (|HasCategory| (-999 |#1|) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))))) 
 (-795) 
 ((|constructor| (NIL "\\axiomType{OrdinaryDifferentialEquationsSolverCategory} is the \\axiom{category} for describing the set of ODE solver \\axiom{domains} with \\axiomFun{measure} and \\axiomFun{ODEsolve}.")) (|ODESolve| (((|Result|) (|Record| (|:| |xinit| (|DoubleFloat|)) (|:| |xend| (|DoubleFloat|)) (|:| |fn| (|Vector| (|Expression| (|DoubleFloat|)))) (|:| |yinit| (|List| (|DoubleFloat|))) (|:| |intvals| (|List| (|DoubleFloat|))) (|:| |g| (|Expression| (|DoubleFloat|))) (|:| |abserr| (|DoubleFloat|)) (|:| |relerr| (|DoubleFloat|)))) "\\spad{ODESolve(args)} performs the integration of the function given the strategy or method returned by \\axiomFun{measure}.")) (|measure| (((|Record| (|:| |measure| (|Float|)) (|:| |explanations| (|String|))) (|RoutinesTable|) (|Record| (|:| |xinit| (|DoubleFloat|)) (|:| |xend| (|DoubleFloat|)) (|:| |fn| (|Vector| (|Expression| (|DoubleFloat|)))) (|:| |yinit| (|List| (|DoubleFloat|))) (|:| |intvals| (|List| (|DoubleFloat|))) (|:| |g| (|Expression| (|DoubleFloat|))) (|:| |abserr| (|DoubleFloat|)) (|:| |relerr| (|DoubleFloat|)))) "\\spad{measure(R,{}args)} calculates an estimate of the ability of a particular method to solve a problem. \\blankline This method may be either a specific NAG routine or a strategy (such as transforming the function from one which is difficult to one which is easier to solve). \\blankline It will call whichever agents are needed to perform analysis on the problem in order to calculate the measure. There is a parameter,{} labelled \\axiom{sofar},{} which would contain the best compatibility found so far."))) 
 NIL 
@@ -3168,17 +3168,17 @@ NIL
 ((|constructor| (NIL "\\spad{ODETools} provides tools for the linear ODE solver.")) (|particularSolution| (((|Union| |#1| "failed") |#2| |#1| (|List| |#1|) (|Mapping| |#1| |#1|)) "\\spad{particularSolution(op,{} g,{} [f1,{}...,{}fm],{} I)} returns a particular solution \\spad{h} of the equation \\spad{op y = g} where \\spad{[f1,{}...,{}fm]} are linearly independent and \\spad{op(\\spad{fi})=0}. The value \"failed\" is returned if no particular solution is found. Note that the method of variations of parameters is used.")) (|variationOfParameters| (((|Union| (|Vector| |#1|) "failed") |#2| |#1| (|List| |#1|)) "\\spad{variationOfParameters(op,{} g,{} [f1,{}...,{}fm])} returns \\spad{[u1,{}...,{}um]} such that a particular solution of the equation \\spad{op y = g} is \\spad{f1 int(u1) + ... + fm int(um)} where \\spad{[f1,{}...,{}fm]} are linearly independent and \\spad{op(\\spad{fi})=0}. The value \"failed\" is returned if \\spad{m < n} and no particular solution is found.")) (|wronskianMatrix| (((|Matrix| |#1|) (|List| |#1|) (|NonNegativeInteger|)) "\\spad{wronskianMatrix([f1,{}...,{}fn],{} q,{} D)} returns the \\spad{q x n} matrix \\spad{m} whose i^th row is \\spad{[f1^(i-1),{}...,{}fn^(i-1)]}.") (((|Matrix| |#1|) (|List| |#1|)) "\\spad{wronskianMatrix([f1,{}...,{}fn])} returns the \\spad{n x n} matrix \\spad{m} whose i^th row is \\spad{[f1^(i-1),{}...,{}fn^(i-1)]}."))) 
 NIL 
 NIL 
-(-810 -2570 S |f|) 
+(-810 -1965 S |f|) 
 ((|constructor| (NIL "This type represents the finite direct or cartesian product of an underlying ordered component type. The ordering on the type is determined by its third argument which represents the less than function on vectors. This type is a suitable third argument for \\spadtype{GeneralDistributedMultivariatePolynomial}."))) 
-((-4513 |has| |#2| (-1047)) (-4514 |has| |#2| (-1047)) (-4516 |has| |#2| (-6 -4516)) ((-4521 "*") |has| |#2| (-172)) (-4519 . T)) 
-((|HasCategory| |#2| (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047))) (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840))) (-2198 (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840)))) (|HasCategory| |#2| (QUOTE (-716))) (|HasCategory| |#2| (QUOTE (-172))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-365)))) (-2198 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| |#2| (QUOTE (-370))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-225))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1090)))) (|HasAttribute| |#2| (QUOTE -4516)) (|HasCategory| |#2| (QUOTE (-137))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| |#2| (QUOTE (-25))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-25))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-370))) (|HasCategory| |#2| (QUOTE (-716))) (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840))) (|HasCategory| |#2| (QUOTE (-1047))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2198 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-25))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2198 (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1090))))) (-2198 (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2198 (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))))) 
+((-4515 |has| |#2| (-1047)) (-4516 |has| |#2| (-1047)) (-4518 |has| |#2| (-6 -4518)) ((-4523 "*") |has| |#2| (-172)) (-4521 . T)) 
+((|HasCategory| |#2| (QUOTE (-1090))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047))) (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840))) (-2199 (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840)))) (|HasCategory| |#2| (QUOTE (-716))) (|HasCategory| |#2| (QUOTE (-172))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-365)))) (-2199 (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| |#2| (QUOTE (-370))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-225))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| (-568) (QUOTE (-842))) (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1090)))) (|HasAttribute| |#2| (QUOTE -4518)) (|HasCategory| |#2| (QUOTE (-137))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (|HasCategory| |#2| (QUOTE (-25))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-25))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-370))) (|HasCategory| |#2| (QUOTE (-716))) (|HasCategory| |#2| (QUOTE (-788))) (|HasCategory| |#2| (QUOTE (-840))) (|HasCategory| |#2| (QUOTE (-1047))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2199 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-25))) (|HasCategory| |#2| (QUOTE (-137))) (|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-1047)))) (-2199 (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (QUOTE (-1090))))) (-2199 (-12 (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1090))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))) (-2199 (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161))))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-25)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-137)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-172)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-225)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-365)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-370)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-716)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-788)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-840)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1047)))) (-12 (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-1090)))))) 
 (-811 R) 
 ((|constructor| (NIL "\\spadtype{OrderlyDifferentialPolynomial} implements an ordinary differential polynomial ring in arbitrary number of differential indeterminates,{} with coefficients in a ring. The ranking on the differential indeterminate is orderly. This is analogous to the domain \\spadtype{Polynomial}."))) 
-(((-4521 "*") |has| |#1| (-172)) (-4512 |has| |#1| (-558)) (-4517 |has| |#1| (-6 -4517)) (-4514 . T) (-4513 . T) (-4516 . T)) 
-((|HasCategory| |#1| (QUOTE (-904))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (-2198 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558)))) (-12 (|HasCategory| (-813 (-1161)) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| (-813 (-1161)) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| (-813 (-1161)) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| (-813 (-1161)) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| (-813 (-1161)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-225))) (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-365))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasAttribute| |#1| (QUOTE -4517)) (|HasCategory| |#1| (QUOTE (-453))) (-2198 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2198 (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2198 (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-148))))) 
+(((-4523 "*") |has| |#1| (-172)) (-4514 |has| |#1| (-558)) (-4519 |has| |#1| (-6 -4519)) (-4516 . T) (-4515 . T) (-4518 . T)) 
+((|HasCategory| |#1| (QUOTE (-904))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-172))) (-2199 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-558)))) (-12 (|HasCategory| (-813 (-1161)) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-381))))) (-12 (|HasCategory| (-813 (-1161)) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -881) (QUOTE (-568))))) (-12 (|HasCategory| (-813 (-1161)) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381)))))) (-12 (|HasCategory| (-813 (-1161)) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568)))))) (-12 (|HasCategory| (-813 (-1161)) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#1| (LIST (QUOTE -609) (QUOTE (-541))))) (|HasCategory| |#1| (QUOTE (-842))) (|HasCategory| |#1| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (QUOTE (-225))) (|HasCategory| |#1| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#1| (QUOTE (-365))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -43) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568)))))) (|HasAttribute| |#1| (QUOTE -4519)) (|HasCategory| |#1| (QUOTE (-453))) (-2199 (|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2199 (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-904)))) (-2199 (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-904)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-904)))) (|HasCategory| |#1| (QUOTE (-148))))) 
 (-812 |Kernels| R |var|) 
 ((|constructor| (NIL "This constructor produces an ordinary differential ring from a partial differential ring by specifying a variable.")) (|coerce| ((|#2| $) "\\spad{coerce(p)} views \\spad{p} as a valie in the partial differential ring.") (($ |#2|) "\\spad{coerce(r)} views \\spad{r} as a value in the ordinary differential ring."))) 
-(((-4521 "*") |has| |#2| (-365)) (-4512 |has| |#2| (-365)) (-4517 |has| |#2| (-365)) (-4511 |has| |#2| (-365)) (-4516 . T) (-4514 . T) (-4513 . T)) 
+(((-4523 "*") |has| |#2| (-365)) (-4514 |has| |#2| (-365)) (-4519 |has| |#2| (-365)) (-4513 |has| |#2| (-365)) (-4518 . T) (-4516 . T) (-4515 . T)) 
 ((|HasCategory| |#2| (QUOTE (-365)))) 
 (-813 S) 
 ((|constructor| (NIL "\\spadtype{OrderlyDifferentialVariable} adds a commonly used orderly ranking to the set of derivatives of an ordered list of differential indeterminates. An orderly ranking is a ranking \\spadfun{<} of the derivatives with the property that for two derivatives \\spad{u} and \\spad{v},{} \\spad{u} \\spadfun{<} \\spad{v} if the \\spadfun{order} of \\spad{u} is less than that of \\spad{v}. This domain belongs to \\spadtype{DifferentialVariableCategory}. It defines \\spadfun{weight} to be just \\spadfun{order},{} and it defines an orderly ranking \\spadfun{<} on derivatives \\spad{u} via the lexicographic order on the pair (\\spadfun{order}(\\spad{u}),{} \\spadfun{variable}(\\spad{u}))."))) 
@@ -3190,7 +3190,7 @@ NIL
 NIL 
 (-815) 
 ((|constructor| (NIL "The category of ordered commutative integral domains,{} where ordering and the arithmetic operations are compatible"))) 
-((-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-816) 
 ((|constructor| (NIL "\\spadtype{OpenMathConnection} provides low-level functions for handling connections to and from \\spadtype{OpenMathDevice}\\spad{s}.")) (|OMbindTCP| (((|Boolean|) $ (|SingleInteger|)) "\\spad{OMbindTCP}")) (|OMconnectTCP| (((|Boolean|) $ (|String|) (|SingleInteger|)) "\\spad{OMconnectTCP}")) (|OMconnOutDevice| (((|OpenMathDevice|) $) "\\spad{OMconnOutDevice:}")) (|OMconnInDevice| (((|OpenMathDevice|) $) "\\spad{OMconnInDevice:}")) (|OMcloseConn| (((|Void|) $) "\\spad{OMcloseConn}")) (|OMmakeConn| (($ (|SingleInteger|)) "\\spad{OMmakeConn}"))) 
@@ -3218,7 +3218,7 @@ NIL
 NIL 
 (-822 P R) 
 ((|constructor| (NIL "This constructor creates the \\spadtype{MonogenicLinearOperator} domain which is ``opposite\\spad{''} in the ring sense to \\spad{P}. That is,{} as sets \\spad{P = \\$} but \\spad{a * b} in \\spad{\\$} is equal to \\spad{b * a} in \\spad{P}.")) (|po| ((|#1| $) "\\spad{po(q)} creates a value in \\spad{P} equal to \\spad{q} in \\$.")) (|op| (($ |#1|) "\\spad{op(p)} creates a value in \\$ equal to \\spad{p} in \\spad{P}."))) 
-((-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4515 . T) (-4516 . T) (-4518 . T)) 
 ((|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-225)))) 
 (-823) 
 ((|constructor| (NIL "\\spadtype{OpenMath} provides operations for exporting an object in OpenMath format.")) (|OMwrite| (((|Void|) (|OpenMathDevice|) $ (|Boolean|)) "\\spad{OMwrite(dev,{} u,{} true)} writes the OpenMath form of \\axiom{\\spad{u}} to the OpenMath device \\axiom{\\spad{dev}} as a complete OpenMath object; OMwrite(\\spad{dev},{} \\spad{u},{} \\spad{false}) writes the object as an OpenMath fragment.") (((|Void|) (|OpenMathDevice|) $) "\\spad{OMwrite(dev,{} u)} writes the OpenMath form of \\axiom{\\spad{u}} to the OpenMath device \\axiom{\\spad{dev}} as a complete OpenMath object.") (((|String|) $ (|Boolean|)) "\\spad{OMwrite(u,{} true)} returns the OpenMath \\spad{XML} encoding of \\axiom{\\spad{u}} as a complete OpenMath object; OMwrite(\\spad{u},{} \\spad{false}) returns the OpenMath \\spad{XML} encoding of \\axiom{\\spad{u}} as an OpenMath fragment.") (((|String|) $) "\\spad{OMwrite(u)} returns the OpenMath \\spad{XML} encoding of \\axiom{\\spad{u}} as a complete OpenMath object."))) 
@@ -3230,7 +3230,7 @@ NIL
 NIL 
 (-825 S) 
 ((|constructor| (NIL "to become an in order iterator")) (|min| ((|#1| $) "\\spad{min(u)} returns the smallest entry in the multiset aggregate \\spad{u}."))) 
-((-4519 . T) (-4509 . T) (-4520 . T) (-3973 . T)) 
+((-4521 . T) (-4511 . T) (-4522 . T) (-3973 . T)) 
 NIL 
 (-826) 
 ((|constructor| (NIL "\\spadtype{OpenMathServerPackage} provides the necessary operations to run AXIOM as an OpenMath server,{} reading/writing objects to/from a port. Please note the facilities available here are very basic. The idea is that a user calls \\spadignore{e.g.} \\axiom{Omserve(4000,{}60)} and then another process sends OpenMath objects to port 4000 and reads the result.")) (|OMserve| (((|Void|) (|SingleInteger|) (|SingleInteger|)) "\\spad{OMserve(portnum,{}timeout)} puts AXIOM into server mode on port number \\axiom{\\spad{portnum}}. The parameter \\axiom{\\spad{timeout}} specifies the \\spad{timeout} period for the connection.")) (|OMsend| (((|Void|) (|OpenMathConnection|) (|Any|)) "\\spad{OMsend(c,{}u)} attempts to output \\axiom{\\spad{u}} on \\axiom{\\spad{c}} in OpenMath.")) (|OMreceive| (((|Any|) (|OpenMathConnection|)) "\\spad{OMreceive(c)} reads an OpenMath object from connection \\axiom{\\spad{c}} and returns the appropriate AXIOM object."))) 
@@ -3242,11 +3242,11 @@ NIL
 NIL 
 (-828 R) 
 ((|constructor| (NIL "Completion with infinity. Adjunction of a complex infinity to a set.")) (|rationalIfCan| (((|Union| (|Fraction| (|Integer|)) "failed") $) "\\spad{rationalIfCan(x)} returns \\spad{x} as a finite rational number if it is one,{} \"failed\" otherwise.")) (|rational| (((|Fraction| (|Integer|)) $) "\\spad{rational(x)} returns \\spad{x} as a finite rational number. Error: if \\spad{x} is not a rational number.")) (|rational?| (((|Boolean|) $) "\\spad{rational?(x)} tests if \\spad{x} is a finite rational number.")) (|infinite?| (((|Boolean|) $) "\\spad{infinite?(x)} tests if \\spad{x} is infinite.")) (|finite?| (((|Boolean|) $) "\\spad{finite?(x)} tests if \\spad{x} is finite.")) (|infinity| (($) "\\spad{infinity()} returns infinity."))) 
-((-4516 |has| |#1| (-840))) 
-((|HasCategory| |#1| (QUOTE (-840))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-550))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-840)))) (|HasCategory| |#1| (QUOTE (-21))) (-2198 (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-840))))) 
+((-4518 |has| |#1| (-840))) 
+((|HasCategory| |#1| (QUOTE (-840))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-550))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-840)))) (|HasCategory| |#1| (QUOTE (-21))) (-2199 (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-840))))) 
 (-829 R) 
 ((|constructor| (NIL "Algebra of ADDITIVE operators over a ring."))) 
-((-4514 |has| |#1| (-172)) (-4513 |has| |#1| (-172)) (-4516 . T)) 
+((-4516 |has| |#1| (-172)) (-4515 |has| |#1| (-172)) (-4518 . T)) 
 ((|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-150)))) 
 (-830) 
 ((|constructor| (NIL "This package exports tools to create AXIOM Library information databases.")) (|getDatabase| (((|Database| (|IndexCard|)) (|String|)) "\\spad{getDatabase(\"char\")} returns a list of appropriate entries in the browser database. The legal values for \\spad{\"char\"} are \"o\" (operations),{} \\spad{\"k\"} (constructors),{} \\spad{\"d\"} (domains),{} \\spad{\"c\"} (categories) or \\spad{\"p\"} (packages)."))) 
@@ -3270,13 +3270,13 @@ NIL
 NIL 
 (-835 R) 
 ((|constructor| (NIL "Completion with + and - infinity. Adjunction of two real infinites quantities to a set.")) (|rationalIfCan| (((|Union| (|Fraction| (|Integer|)) "failed") $) "\\spad{rationalIfCan(x)} returns \\spad{x} as a finite rational number if it is one and \"failed\" otherwise.")) (|rational| (((|Fraction| (|Integer|)) $) "\\spad{rational(x)} returns \\spad{x} as a finite rational number. Error: if \\spad{x} cannot be so converted.")) (|rational?| (((|Boolean|) $) "\\spad{rational?(x)} tests if \\spad{x} is a finite rational number.")) (|whatInfinity| (((|SingleInteger|) $) "\\spad{whatInfinity(x)} returns 0 if \\spad{x} is finite,{} 1 if \\spad{x} is +infinity,{} and \\spad{-1} if \\spad{x} is -infinity.")) (|infinite?| (((|Boolean|) $) "\\spad{infinite?(x)} tests if \\spad{x} is +infinity or -infinity,{}")) (|finite?| (((|Boolean|) $) "\\spad{finite?(x)} tests if \\spad{x} is finite.")) (|minusInfinity| (($) "\\spad{minusInfinity()} returns -infinity.")) (|plusInfinity| (($) "\\spad{plusInfinity()} returns +infinity."))) 
-((-4516 |has| |#1| (-840))) 
-((|HasCategory| |#1| (QUOTE (-840))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-550))) (-2198 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-840)))) (|HasCategory| |#1| (QUOTE (-21))) (-2198 (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-840))))) 
+((-4518 |has| |#1| (-840))) 
+((|HasCategory| |#1| (QUOTE (-840))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-550))) (-2199 (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-840)))) (|HasCategory| |#1| (QUOTE (-21))) (-2199 (|HasCategory| |#1| (QUOTE (-21))) (|HasCategory| |#1| (QUOTE (-840))))) 
 (-836) 
 ((|constructor| (NIL "Ordered finite sets."))) 
 NIL 
 NIL 
-(-837 -2570 S) 
+(-837 -1965 S) 
 ((|constructor| (NIL "This package provides ordering functions on vectors which are suitable parameters for OrderedDirectProduct.")) (|reverseLex| (((|Boolean|) (|Vector| |#2|) (|Vector| |#2|)) "\\spad{reverseLex(v1,{}v2)} return \\spad{true} if the vector \\spad{v1} is less than the vector \\spad{v2} in the ordering which is total degree refined by the reverse lexicographic ordering.")) (|totalLex| (((|Boolean|) (|Vector| |#2|) (|Vector| |#2|)) "\\spad{totalLex(v1,{}v2)} return \\spad{true} if the vector \\spad{v1} is less than the vector \\spad{v2} in the ordering which is total degree refined by lexicographic ordering.")) (|pureLex| (((|Boolean|) (|Vector| |#2|) (|Vector| |#2|)) "\\spad{pureLex(v1,{}v2)} return \\spad{true} if the vector \\spad{v1} is less than the vector \\spad{v2} in the lexicographic ordering."))) 
 NIL 
 NIL 
@@ -3290,7 +3290,7 @@ NIL
 NIL 
 (-840) 
 ((|constructor| (NIL "Ordered sets which are also rings,{} that is,{} domains where the ring operations are compatible with the ordering. \\blankline Axiom\\spad{\\br} \\tab{5}\\spad{0<a and b<c => ab< ac}")) (|abs| (($ $) "\\spad{abs(x)} returns the absolute value of \\spad{x}.")) (|sign| (((|Integer|) $) "\\spad{sign(x)} is 1 if \\spad{x} is positive,{} \\spad{-1} if \\spad{x} is negative,{} 0 if \\spad{x} equals 0.")) (|negative?| (((|Boolean|) $) "\\spad{negative?(x)} tests whether \\spad{x} is strictly less than 0.")) (|positive?| (((|Boolean|) $) "\\spad{positive?(x)} tests whether \\spad{x} is strictly greater than 0."))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-841 S) 
 ((|constructor| (NIL "The class of totally ordered sets,{} that is,{} sets such that for each pair of elements \\spad{(a,{}b)} exactly one of the following relations holds \\spad{a<b or a=b or b<a} and the relation is transitive,{} \\spadignore{i.e.} \\spad{a<b and b<c => a<c}.")) (|min| (($ $ $) "\\spad{min(x,{}y)} returns the minimum of \\spad{x} and \\spad{y} relative to \\spad{\"<\"}.")) (|max| (($ $ $) "\\spad{max(x,{}y)} returns the maximum of \\spad{x} and \\spad{y} relative to \\spad{\"<\"}.")) (<= (((|Boolean|) $ $) "\\spad{x <= y} is a less than or equal test.")) (>= (((|Boolean|) $ $) "\\spad{x >= y} is a greater than or equal test.")) (> (((|Boolean|) $ $) "\\spad{x > y} is a greater than test.")) (< (((|Boolean|) $ $) "\\spad{x < y} is a strict total ordering on the elements of the set."))) 
@@ -3306,19 +3306,19 @@ NIL
 ((|HasCategory| |#2| (QUOTE (-365))) (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-172)))) 
 (-844 R) 
 ((|constructor| (NIL "This is the category of univariate skew polynomials over an Ore coefficient ring. The multiplication is given by \\spad{x a = \\sigma(a) x + \\delta a}. This category is an evolution of the types MonogenicLinearOperator,{} OppositeMonogenicLinearOperator,{} and NonCommutativeOperatorDivision")) (|leftLcm| (($ $ $) "\\spad{leftLcm(a,{}b)} computes the value \\spad{m} of lowest degree such that \\spad{m = aa*a = bb*b} for some values \\spad{aa} and \\spad{bb}. The value \\spad{m} is computed using right-division.")) (|rightExtendedGcd| (((|Record| (|:| |coef1| $) (|:| |coef2| $) (|:| |generator| $)) $ $) "\\spad{rightExtendedGcd(a,{}b)} returns \\spad{[c,{}d]} such that \\spad{g = c * a + d * b = rightGcd(a,{} b)}.")) (|rightGcd| (($ $ $) "\\spad{rightGcd(a,{}b)} computes the value \\spad{g} of highest degree such that \\indented{3}{\\spad{a = aa*g}} \\indented{3}{\\spad{b = bb*g}} for some values \\spad{aa} and \\spad{bb}. The value \\spad{g} is computed using right-division.")) (|rightExactQuotient| (((|Union| $ "failed") $ $) "\\spad{rightExactQuotient(a,{}b)} computes the value \\spad{q},{} if it exists such that \\spad{a = q*b}.")) (|rightRemainder| (($ $ $) "\\spad{rightRemainder(a,{}b)} computes the pair \\spad{[q,{}r]} such that \\spad{a = q*b + r} and the degree of \\spad{r} is less than the degree of \\spad{b}. The value \\spad{r} is returned.")) (|rightQuotient| (($ $ $) "\\spad{rightQuotient(a,{}b)} computes the pair \\spad{[q,{}r]} such that \\spad{a = q*b + r} and the degree of \\spad{r} is less than the degree of \\spad{b}. The value \\spad{q} is returned.")) (|rightDivide| (((|Record| (|:| |quotient| $) (|:| |remainder| $)) $ $) "\\spad{rightDivide(a,{}b)} returns the pair \\spad{[q,{}r]} such that \\spad{a = q*b + r} and the degree of \\spad{r} is less than the degree of \\spad{b}. This process is called ``right division\\spad{''}.")) (|rightLcm| (($ $ $) "\\spad{rightLcm(a,{}b)} computes the value \\spad{m} of lowest degree such that \\spad{m = a*aa = b*bb} for some values \\spad{aa} and \\spad{bb}. The value \\spad{m} is computed using left-division.")) (|leftExtendedGcd| (((|Record| (|:| |coef1| $) (|:| |coef2| $) (|:| |generator| $)) $ $) "\\spad{leftExtendedGcd(a,{}b)} returns \\spad{[c,{}d]} such that \\spad{g = a * c + b * d = leftGcd(a,{} b)}.")) (|leftGcd| (($ $ $) "\\spad{leftGcd(a,{}b)} computes the value \\spad{g} of highest degree such that \\indented{3}{\\spad{a = g*aa}} \\indented{3}{\\spad{b = g*bb}} for some values \\spad{aa} and \\spad{bb}. The value \\spad{g} is computed using left-division.")) (|leftExactQuotient| (((|Union| $ "failed") $ $) "\\spad{leftExactQuotient(a,{}b)} computes the value \\spad{q},{} if it exists,{} \\indented{1}{such that \\spad{a = b*q}.}")) (|leftRemainder| (($ $ $) "\\spad{leftRemainder(a,{}b)} computes the pair \\spad{[q,{}r]} such that \\spad{a = b*q + r} and the degree of \\spad{r} is less than the degree of \\spad{b}. The value \\spad{r} is returned.")) (|leftQuotient| (($ $ $) "\\spad{leftQuotient(a,{}b)} computes the pair \\spad{[q,{}r]} such that \\spad{a = b*q + r} and the degree of \\spad{r} is less than the degree of \\spad{b}. The value \\spad{q} is returned.")) (|leftDivide| (((|Record| (|:| |quotient| $) (|:| |remainder| $)) $ $) "\\spad{leftDivide(a,{}b)} returns the pair \\spad{[q,{}r]} such that \\spad{a = b*q + r} and the degree of \\spad{r} is less than the degree of \\spad{b}. This process is called ``left division\\spad{''}.")) (|primitivePart| (($ $) "\\spad{primitivePart(l)} returns \\spad{l0} such that \\spad{l = a * l0} for some a in \\spad{R},{} and \\spad{content(l0) = 1}.")) (|content| ((|#1| $) "\\spad{content(l)} returns the \\spad{gcd} of all the coefficients of \\spad{l}.")) (|monicRightDivide| (((|Record| (|:| |quotient| $) (|:| |remainder| $)) $ $) "\\spad{monicRightDivide(a,{}b)} returns the pair \\spad{[q,{}r]} such that \\spad{a = q*b + r} and the degree of \\spad{r} is less than the degree of \\spad{b}. \\spad{b} must be monic. This process is called ``right division\\spad{''}.")) (|monicLeftDivide| (((|Record| (|:| |quotient| $) (|:| |remainder| $)) $ $) "\\spad{monicLeftDivide(a,{}b)} returns the pair \\spad{[q,{}r]} such that \\spad{a = b*q + r} and the degree of \\spad{r} is less than the degree of \\spad{b}. \\spad{b} must be monic. This process is called ``left division\\spad{''}.")) (|exquo| (((|Union| $ "failed") $ |#1|) "\\spad{exquo(l,{} a)} returns the exact quotient of \\spad{l} by a,{} returning \\axiom{\"failed\"} if this is not possible.")) (|apply| ((|#1| $ |#1| |#1|) "\\spad{apply(p,{} c,{} m)} returns \\spad{p(m)} where the action is given by \\spad{x m = c sigma(m) + delta(m)}.")) (|coefficients| (((|List| |#1|) $) "\\spad{coefficients(l)} returns the list of all the nonzero coefficients of \\spad{l}.")) (|monomial| (($ |#1| (|NonNegativeInteger|)) "\\spad{monomial(c,{}k)} produces \\spad{c} times the \\spad{k}-th power of the generating operator,{} \\spad{monomial(1,{}1)}.")) (|coefficient| ((|#1| $ (|NonNegativeInteger|)) "\\spad{coefficient(l,{}k)} is \\spad{a(k)} if \\indented{2}{\\spad{l = sum(monomial(a(i),{}i),{} i = 0..n)}.}")) (|reductum| (($ $) "\\spad{reductum(l)} is \\spad{l - monomial(a(n),{}n)} if \\indented{2}{\\spad{l = sum(monomial(a(i),{}i),{} i = 0..n)}.}")) (|leadingCoefficient| ((|#1| $) "\\spad{leadingCoefficient(l)} is \\spad{a(n)} if \\indented{2}{\\spad{l = sum(monomial(a(i),{}i),{} i = 0..n)}.}")) (|minimumDegree| (((|NonNegativeInteger|) $) "\\spad{minimumDegree(l)} is the smallest \\spad{k} such that \\spad{a(k) ^= 0} if \\indented{2}{\\spad{l = sum(monomial(a(i),{}i),{} i = 0..n)}.}")) (|degree| (((|NonNegativeInteger|) $) "\\spad{degree(l)} is \\spad{n} if \\indented{2}{\\spad{l = sum(monomial(a(i),{}i),{} i = 0..n)}.}"))) 
-((-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-845 R C) 
 ((|constructor| (NIL "\\spad{UnivariateSkewPolynomialCategoryOps} provides products and divisions of univariate skew polynomials.")) (|rightDivide| (((|Record| (|:| |quotient| |#2|) (|:| |remainder| |#2|)) |#2| |#2| (|Automorphism| |#1|)) "\\spad{rightDivide(a,{} b,{} sigma)} returns the pair \\spad{[q,{}r]} such that \\spad{a = q*b + r} and the degree of \\spad{r} is less than the degree of \\spad{b}. This process is called ``right division\\spad{''}. \\spad{\\sigma} is the morphism to use.")) (|leftDivide| (((|Record| (|:| |quotient| |#2|) (|:| |remainder| |#2|)) |#2| |#2| (|Automorphism| |#1|)) "\\spad{leftDivide(a,{} b,{} sigma)} returns the pair \\spad{[q,{}r]} such that \\spad{a = b*q + r} and the degree of \\spad{r} is less than the degree of \\spad{b}. This process is called ``left division\\spad{''}. \\spad{\\sigma} is the morphism to use.")) (|monicRightDivide| (((|Record| (|:| |quotient| |#2|) (|:| |remainder| |#2|)) |#2| |#2| (|Automorphism| |#1|)) "\\spad{monicRightDivide(a,{} b,{} sigma)} returns the pair \\spad{[q,{}r]} such that \\spad{a = q*b + r} and the degree of \\spad{r} is less than the degree of \\spad{b}. \\spad{b} must be monic. This process is called ``right division\\spad{''}. \\spad{\\sigma} is the morphism to use.")) (|monicLeftDivide| (((|Record| (|:| |quotient| |#2|) (|:| |remainder| |#2|)) |#2| |#2| (|Automorphism| |#1|)) "\\spad{monicLeftDivide(a,{} b,{} sigma)} returns the pair \\spad{[q,{}r]} such that \\spad{a = b*q + r} and the degree of \\spad{r} is less than the degree of \\spad{b}. \\spad{b} must be monic. This process is called ``left division\\spad{''}. \\spad{\\sigma} is the morphism to use.")) (|apply| ((|#1| |#2| |#1| |#1| (|Automorphism| |#1|) (|Mapping| |#1| |#1|)) "\\spad{apply(p,{} c,{} m,{} sigma,{} delta)} returns \\spad{p(m)} where the action is given by \\spad{x m = c sigma(m) + delta(m)}.")) (|times| ((|#2| |#2| |#2| (|Automorphism| |#1|) (|Mapping| |#1| |#1|)) "\\spad{times(p,{} q,{} sigma,{} delta)} returns \\spad{p * q}. \\spad{\\sigma} and \\spad{\\delta} are the maps to use."))) 
 NIL 
 ((|HasCategory| |#1| (QUOTE (-365))) (|HasCategory| |#1| (QUOTE (-558)))) 
-(-846 R |sigma| -1325) 
+(-846 R |sigma| -3488) 
 ((|constructor| (NIL "This is the domain of sparse univariate skew polynomials over an Ore coefficient field. The multiplication is given by \\spad{x a = \\sigma(a) x + \\delta a}.")) (|outputForm| (((|OutputForm|) $ (|OutputForm|)) "\\spad{outputForm(p,{} x)} returns the output form of \\spad{p} using \\spad{x} for the otherwise anonymous variable."))) 
-((-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4515 . T) (-4516 . T) (-4518 . T)) 
 ((|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#1| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#1| (QUOTE (-558))) (|HasCategory| |#1| (QUOTE (-453))) (|HasCategory| |#1| (QUOTE (-365)))) 
-(-847 |x| R |sigma| -1325) 
+(-847 |x| R |sigma| -3488) 
 ((|constructor| (NIL "This is the domain of univariate skew polynomials over an Ore coefficient field in a named variable. The multiplication is given by \\spad{x a = \\sigma(a) x + \\delta a}.")) (|coerce| (($ (|Variable| |#1|)) "\\spad{coerce(x)} returns \\spad{x} as a skew-polynomial."))) 
-((-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4515 . T) (-4516 . T) (-4518 . T)) 
 ((|HasCategory| |#2| (QUOTE (-172))) (|HasCategory| |#2| (LIST (QUOTE -1037) (LIST (QUOTE -409) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-558))) (|HasCategory| |#2| (QUOTE (-453))) (|HasCategory| |#2| (QUOTE (-365)))) 
 (-848 R) 
 ((|constructor| (NIL "This package provides orthogonal polynomials as functions on a ring.")) (|legendreP| ((|#1| (|NonNegativeInteger|) |#1|) "\\spad{legendreP(n,{}x)} is the \\spad{n}-th Legendre polynomial,{} \\spad{P[n](x)}. These are defined by \\spad{1/sqrt(1-2*x*t+t**2) = sum(P[n](x)*t**n,{} n = 0..)}.")) (|laguerreL| ((|#1| (|NonNegativeInteger|) (|NonNegativeInteger|) |#1|) "\\spad{laguerreL(m,{}n,{}x)} is the associated Laguerre polynomial,{} \\spad{L<m>[n](x)}. This is the \\spad{m}-th derivative of \\spad{L[n](x)}.") ((|#1| (|NonNegativeInteger|) |#1|) "\\spad{laguerreL(n,{}x)} is the \\spad{n}-th Laguerre polynomial,{} \\spad{L[n](x)}. These are defined by \\spad{exp(-t*x/(1-t))/(1-t) = sum(L[n](x)*t**n/n!,{} n = 0..)}.")) (|hermiteH| ((|#1| (|NonNegativeInteger|) |#1|) "\\spad{hermiteH(n,{}x)} is the \\spad{n}-th Hermite polynomial,{} \\spad{H[n](x)}. These are defined by \\spad{exp(2*t*x-t**2) = sum(H[n](x)*t**n/n!,{} n = 0..)}.")) (|chebyshevU| ((|#1| (|NonNegativeInteger|) |#1|) "\\spad{chebyshevU(n,{}x)} is the \\spad{n}-th Chebyshev polynomial of the second kind,{} \\spad{U[n](x)}. These are defined by \\spad{1/(1-2*t*x+t**2) = sum(T[n](x) *t**n,{} n = 0..)}.")) (|chebyshevT| ((|#1| (|NonNegativeInteger|) |#1|) "\\spad{chebyshevT(n,{}x)} is the \\spad{n}-th Chebyshev polynomial of the first kind,{} \\spad{T[n](x)}. These are defined by \\spad{(1-t*x)/(1-2*t*x+t**2) = sum(T[n](x) *t**n,{} n = 0..)}."))) 
@@ -3342,36 +3342,36 @@ NIL
 NIL 
 (-853 R |vl| |wl| |wtlevel|) 
 ((|constructor| (NIL "This domain represents truncated weighted polynomials over the \"Polynomial\" type. The variables must be specified,{} as must the weights. The representation is sparse in the sense that only non-zero terms are represented.")) (|changeWeightLevel| (((|Void|) (|NonNegativeInteger|)) "\\spad{changeWeightLevel(n)} This changes the weight level to the new value given: \\spad{NB:} previously calculated terms are not affected")) (/ (((|Union| $ "failed") $ $) "\\spad{x/y} division (only works if minimum weight of divisor is zero,{} and if \\spad{R} is a Field)")) (|coerce| (($ (|Polynomial| |#1|)) "\\spad{coerce(p)} coerces a Polynomial(\\spad{R}) into Weighted form,{} applying weights and ignoring terms") (((|Polynomial| |#1|) $) "\\spad{coerce(p)} converts back into a Polynomial(\\spad{R}),{} ignoring weights"))) 
-((-4514 |has| |#1| (-172)) (-4513 |has| |#1| (-172)) (-4516 . T)) 
+((-4516 |has| |#1| (-172)) (-4515 |has| |#1| (-172)) (-4518 . T)) 
 ((|HasCategory| |#1| (QUOTE (-172))) (|HasCategory| |#1| (QUOTE (-365)))) 
 (-854) 
 ((|constructor| (NIL "This category exports the function for the domain PseudoAlgebraicClosureOfAlgExtOfRationalNumber which implement dynamic extension using the simple notion of tower extensions. A tower extension \\spad{T} of the ground field \\spad{K} is any sequence of field extension (\\spad{T} : \\spad{K_0},{} \\spad{K_1},{} ...,{} K_i...,{}\\spad{K_n}) where \\spad{K_0} = \\spad{K} and for \\spad{i} \\spad{=1},{}2,{}...,{}\\spad{n},{} K_i is an extension of \\spad{K_}{\\spad{i}-1} of degree > 1 and defined by an irreducible polynomial \\spad{p}(\\spad{Z}) in \\spad{K_}{\\spad{i}-1}. Two towers (T_1: \\spad{K_01},{} \\spad{K_11},{}...,{}\\spad{K_i1},{}...,{}\\spad{K_n1}) and (T_2: \\spad{K_02},{} \\spad{K_12},{}...,{}\\spad{K_i2},{}...,{}\\spad{K_n2}) are said to be related if \\spad{T_1} \\spad{<=} \\spad{T_2} (or \\spad{T_1} \\spad{>=} \\spad{T_2}),{} that is if \\spad{K_i1} = \\spad{K_i2} for \\spad{i=1},{}2,{}...,{}\\spad{n1} (or \\spad{i=1},{}2,{}...,{}\\spad{n2}). Any algebraic operations defined for several elements are only defined if all of the concerned elements are comming from a set of related tour extensions."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-855 |downLevel|) 
 ((|constructor| (NIL "This domain implement dynamic extension over the PseudoAlgebraicClosureOfRationalNumber. A tower extension \\spad{T} of the ground field \\spad{K} is any sequence of field extension (\\spad{T} : \\spad{K_0},{} \\spad{K_1},{} ...,{} K_i...,{}\\spad{K_n}) where \\spad{K_0} = \\spad{K} and for \\spad{i} \\spad{=1},{}2,{}...,{}\\spad{n},{} K_i is an extension of \\spad{K_}{\\spad{i}-1} of degree > 1 and defined by an irreducible polynomial \\spad{p}(\\spad{Z}) in \\spad{K_}{\\spad{i}-1}. Two towers (T_1: \\spad{K_01},{} \\spad{K_11},{}...,{}\\spad{K_i1},{}...,{}\\spad{K_n1}) and (T_2: \\spad{K_02},{} \\spad{K_12},{}...,{}\\spad{K_i2},{}...,{}\\spad{K_n2}) are said to be related if \\spad{T_1} \\spad{<=} \\spad{T_2} (or \\spad{T_1} \\spad{>=} \\spad{T_2}),{} that is if \\spad{K_i1} = \\spad{K_i2} for \\spad{i=1},{}2,{}...,{}\\spad{n1} (or \\spad{i=1},{}2,{}...,{}\\spad{n2}). Any algebraic operations defined for several elements are only defined if all of the concerned elements are comming from a set of related tour extensions."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| (-860) (QUOTE (-150))) (|HasCategory| (-860) (QUOTE (-148))) (|HasCategory| (-860) (QUOTE (-370))) (|HasCategory| (-409 (-568)) (QUOTE (-150))) (|HasCategory| (-409 (-568)) (QUOTE (-148))) (|HasCategory| (-409 (-568)) (QUOTE (-370))) (-2198 (|HasCategory| (-409 (-568)) (QUOTE (-148))) (|HasCategory| (-409 (-568)) (QUOTE (-370))) (|HasCategory| (-860) (QUOTE (-148))) (|HasCategory| (-860) (QUOTE (-370)))) (-2198 (|HasCategory| (-409 (-568)) (QUOTE (-370))) (|HasCategory| (-860) (QUOTE (-370))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| (-860) (QUOTE (-150))) (|HasCategory| (-860) (QUOTE (-148))) (|HasCategory| (-860) (QUOTE (-370))) (|HasCategory| (-409 (-568)) (QUOTE (-150))) (|HasCategory| (-409 (-568)) (QUOTE (-148))) (|HasCategory| (-409 (-568)) (QUOTE (-370))) (-2199 (|HasCategory| (-409 (-568)) (QUOTE (-148))) (|HasCategory| (-409 (-568)) (QUOTE (-370))) (|HasCategory| (-860) (QUOTE (-148))) (|HasCategory| (-860) (QUOTE (-370)))) (-2199 (|HasCategory| (-409 (-568)) (QUOTE (-370))) (|HasCategory| (-860) (QUOTE (-370))))) 
 (-856) 
 ((|constructor| (NIL "This category exports the function for the domain PseudoAlgebraicClosureOfFiniteField which implement dynamic extension using the simple notion of tower extensions. A tower extension \\spad{T} of the ground field \\spad{K} is any sequence of field extension (\\spad{T} : \\spad{K_0},{} \\spad{K_1},{} ...,{} K_i...,{}\\spad{K_n}) where \\spad{K_0} = \\spad{K} and for \\spad{i} \\spad{=1},{}2,{}...,{}\\spad{n},{} K_i is an extension of \\spad{K_}{\\spad{i}-1} of degree > 1 and defined by an irreducible polynomial \\spad{p}(\\spad{Z}) in \\spad{K_}{\\spad{i}-1}. Two towers (T_1: \\spad{K_01},{} \\spad{K_11},{}...,{}\\spad{K_i1},{}...,{}\\spad{K_n1}) and (T_2: \\spad{K_02},{} \\spad{K_12},{}...,{}\\spad{K_i2},{}...,{}\\spad{K_n2}) are said to be related if \\spad{T_1} \\spad{<=} \\spad{T_2} (or \\spad{T_1} \\spad{>=} \\spad{T_2}),{} that is if \\spad{K_i1} = \\spad{K_i2} for \\spad{i=1},{}2,{}...,{}\\spad{n1} (or \\spad{i=1},{}2,{}...,{}\\spad{n2}). Any algebraic operations defined for several elements are only defined if all of the concerned elements are comming from a set of related tour extensions."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-857 K) 
 ((|constructor| (NIL "This domain implement dynamic extension using the simple notion of tower extensions. A tower extension \\spad{T} of the ground field \\spad{K} is any sequence of field extension (\\spad{T} : \\spad{K_0},{} \\spad{K_1},{} ...,{} K_i...,{}\\spad{K_n}) where \\spad{K_0} = \\spad{K} and for \\spad{i} \\spad{=1},{}2,{}...,{}\\spad{n},{} K_i is an extension of \\spad{K_}{\\spad{i}-1} of degree > 1 and defined by an irreducible polynomial \\spad{p}(\\spad{Z}) in \\spad{K_}{\\spad{i}-1}. Two towers (T_1: \\spad{K_01},{} \\spad{K_11},{}...,{}\\spad{K_i1},{}...,{}\\spad{K_n1}) and (T_2: \\spad{K_02},{} \\spad{K_12},{}...,{}\\spad{K_i2},{}...,{}\\spad{K_n2}) are said to be related if \\spad{T_1} \\spad{<=} \\spad{T_2} (or \\spad{T_1} \\spad{>=} \\spad{T_2}),{} that is if \\spad{K_i1} = \\spad{K_i2} for \\spad{i=1},{}2,{}...,{}\\spad{n1} (or \\spad{i=1},{}2,{}...,{}\\spad{n2}). Any algebraic operations defined for several elements are only defined if all of the concerned elements are comming from a set of related tour extensions."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 ((|HasCategory| |#1| (QUOTE (-150))) (|HasCategory| |#1| (QUOTE (-148))) (|HasCategory| |#1| (QUOTE (-370)))) 
 (-858) 
 ((|constructor| (NIL "This category exports the function for domains which implement dynamic extension using the simple notion of tower extensions. \\spad{++} A tower extension \\spad{T} of the ground field \\spad{K} is any sequence of field extension (\\spad{T} : \\spad{K_0},{} \\spad{K_1},{} ...,{} K_i...,{}\\spad{K_n}) where \\spad{K_0} = \\spad{K} and for \\spad{i} \\spad{=1},{}2,{}...,{}\\spad{n},{} K_i is an extension of \\spad{K_}{\\spad{i}-1} of degree > 1 and defined by an irreducible polynomial \\spad{p}(\\spad{Z}) in \\spad{K_}{\\spad{i}-1}. Two towers (T_1: \\spad{K_01},{} \\spad{K_11},{}...,{}\\spad{K_i1},{}...,{}\\spad{K_n1}) and (T_2: \\spad{K_02},{} \\spad{K_12},{}...,{}\\spad{K_i2},{}...,{}\\spad{K_n2}) are said to be related if \\spad{T_1} \\spad{<=} \\spad{T_2} (or \\spad{T_1} \\spad{>=} \\spad{T_2}),{} that is if \\spad{K_i1} = \\spad{K_i2} for \\spad{i=1},{}2,{}...,{}\\spad{n1} (or \\spad{i=1},{}2,{}...,{}\\spad{n2}). Any algebraic operations defined for several elements are only defined if all of the concerned elements are comming from a set of related tour extensions.")) (|previousTower| (($ $) "\\spad{previousTower(a)} returns the previous tower extension over which the element a is defined.")) (|extDegree| (((|PositiveInteger|) $) "\\spad{extDegree(a)} returns the extension degree of the extension tower over which the element is defined.")) (|maxTower| (($ (|List| $)) "\\spad{maxTower(l)} returns the tower in the list having the maximal extension degree over the ground field. It has no meaning if the towers are not related.")) (|distinguishedRootsOf| (((|List| $) (|SparseUnivariatePolynomial| $) $) "\\spad{distinguishedRootsOf(p,{}a)} returns a (distinguised) root for each irreducible factor of the polynomial \\spad{p} (factored over the field defined by the element a)."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-859) 
 ((|constructor| (NIL "This category exports the function for the domain PseudoAlgebraicClosureOfRationalNumber which implement dynamic extension using the simple notion of tower extensions. A tower extension \\spad{T} of the ground field \\spad{K} is any sequence of field extension (\\spad{T} : \\spad{K_0},{} \\spad{K_1},{} ...,{} K_i...,{}\\spad{K_n}) where \\spad{K_0} = \\spad{K} and for \\spad{i} \\spad{=1},{}2,{}...,{}\\spad{n},{} K_i is an extension of \\spad{K_}{\\spad{i}-1} of degree > 1 and defined by an irreducible polynomial \\spad{p}(\\spad{Z}) in \\spad{K_}{\\spad{i}-1}. Two towers (T_1: \\spad{K_01},{} \\spad{K_11},{}...,{}\\spad{K_i1},{}...,{}\\spad{K_n1}) and (T_2: \\spad{K_02},{} \\spad{K_12},{}...,{}\\spad{K_i2},{}...,{}\\spad{K_n2}) are said to be related if \\spad{T_1} \\spad{<=} \\spad{T_2} (or \\spad{T_1} \\spad{>=} \\spad{T_2}),{} that is if \\spad{K_i1} = \\spad{K_i2} for \\spad{i=1},{}2,{}...,{}\\spad{n1} (or \\spad{i=1},{}2,{}...,{}\\spad{n2}). Any algebraic operations defined for several elements are only defined if all of the concerned elements are comming from a set of related tour extensions."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-860) 
 ((|constructor| (NIL "This domain implements dynamic extension using the simple notion of tower extensions. A tower extension \\spad{T} of the ground field \\spad{K} is any sequence of field extension (\\spad{T} : \\spad{K_0},{} \\spad{K_1},{} ...,{} K_i...,{}\\spad{K_n}) where \\spad{K_0} = \\spad{K} and for \\spad{i} \\spad{=1},{}2,{}...,{}\\spad{n},{} K_i is an extension of \\spad{K_}{\\spad{i}-1} of degree > 1 and defined by an irreducible polynomial \\spad{p}(\\spad{Z}) in \\spad{K_}{\\spad{i}-1}. Two towers (T_1: \\spad{K_01},{} \\spad{K_11},{}...,{}\\spad{K_i1},{}...,{}\\spad{K_n1}) and (T_2: \\spad{K_02},{} \\spad{K_12},{}...,{}\\spad{K_i2},{}...,{}\\spad{K_n2}) are said to be related if \\spad{T_1} \\spad{<=} \\spad{T_2} (or \\spad{T_1} \\spad{>=} \\spad{T_2}),{} that is if \\spad{K_i1} = \\spad{K_i2} for \\spad{i=1},{}2,{}...,{}\\spad{n1} (or \\spad{i=1},{}2,{}...,{}\\spad{n2}). Any algebraic operations defined for several elements are only defined if all of the concerned elements are comming from a set of related tour extensions."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| (-409 (-568)) (QUOTE (-150))) (|HasCategory| (-409 (-568)) (QUOTE (-148))) (|HasCategory| (-409 (-568)) (QUOTE (-370))) (-2198 (|HasCategory| (-409 (-568)) (QUOTE (-148))) (|HasCategory| (-409 (-568)) (QUOTE (-370))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| (-409 (-568)) (QUOTE (-150))) (|HasCategory| (-409 (-568)) (QUOTE (-148))) (|HasCategory| (-409 (-568)) (QUOTE (-370))) (-2199 (|HasCategory| (-409 (-568)) (QUOTE (-148))) (|HasCategory| (-409 (-568)) (QUOTE (-370))))) 
 (-861 R PS UP) 
 ((|constructor| (NIL "This package computes reliable Pad&ea. approximants using a generalized Viskovatov continued fraction algorithm.")) (|padecf| (((|Union| (|ContinuedFraction| |#3|) "failed") (|NonNegativeInteger|) (|NonNegativeInteger|) |#2| |#2|) "\\spad{padecf(nd,{}dd,{}ns,{}ds)} computes the approximant as a continued fraction of polynomials (if it exists) for arguments \\spad{nd} (numerator degree of approximant),{} \\spad{dd} (denominator degree of approximant),{} \\spad{ns} (numerator series of function),{} and \\spad{ds} (denominator series of function).")) (|pade| (((|Union| (|Fraction| |#3|) "failed") (|NonNegativeInteger|) (|NonNegativeInteger|) |#2| |#2|) "\\spad{pade(nd,{}dd,{}ns,{}ds)} computes the approximant as a quotient of polynomials (if it exists) for arguments \\spad{nd} (numerator degree of approximant),{} \\spad{dd} (denominator degree of approximant),{} \\spad{ns} (numerator series of function),{} and \\spad{ds} (denominator series of function)."))) 
 NIL 
@@ -3382,20 +3382,20 @@ NIL
 NIL 
 (-863 |p|) 
 ((|constructor| (NIL "This is the category of stream-based representations of the \\spad{p}-adic integers.")) (|root| (($ (|SparseUnivariatePolynomial| (|Integer|)) (|Integer|)) "\\spad{root(f,{}a)} returns a root of the polynomial \\spad{f}. Argument \\spad{a} must be a root of \\spad{f} \\spad{(mod p)}.")) (|sqrt| (($ $ (|Integer|)) "\\spad{sqrt(b,{}a)} returns a square root of \\spad{b}. Argument \\spad{a} is a square root of \\spad{b} \\spad{(mod p)}.")) (|approximate| (((|Integer|) $ (|Integer|)) "\\spad{approximate(x,{}n)} returns an integer \\spad{y} such that \\spad{y = x (mod p^n)} when \\spad{n} is positive,{} and 0 otherwise.")) (|quotientByP| (($ $) "\\spad{quotientByP(x)} returns \\spad{b},{} where \\spad{x = a + b p}.")) (|moduloP| (((|Integer|) $) "\\spad{modulo(x)} returns a,{} where \\spad{x = a + b p}.")) (|modulus| (((|Integer|)) "\\spad{modulus()} returns the value of \\spad{p}.")) (|complete| (($ $) "\\spad{complete(x)} forces the computation of all digits.")) (|extend| (($ $ (|Integer|)) "\\spad{extend(x,{}n)} forces the computation of digits up to order \\spad{n}.")) (|order| (((|NonNegativeInteger|) $) "\\spad{order(x)} returns the exponent of the highest power of \\spad{p} dividing \\spad{x}.")) (|digits| (((|Stream| (|Integer|)) $) "\\spad{digits(x)} returns a stream of \\spad{p}-adic digits of \\spad{x}."))) 
-((-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-864 |p|) 
 ((|constructor| (NIL "Stream-based implementation of \\spad{Zp:} \\spad{p}-adic numbers are represented as sum(\\spad{i} = 0..,{} a[\\spad{i}] * p^i),{} where the a[\\spad{i}] lie in 0,{}1,{}...,{}(\\spad{p} - 1)."))) 
-((-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
+((-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
 NIL 
 (-865 |p|) 
 ((|constructor| (NIL "Stream-based implementation of \\spad{Qp:} numbers are represented as sum(\\spad{i} = \\spad{k}..,{} a[\\spad{i}] * p^i) where the a[\\spad{i}] lie in 0,{}1,{}...,{}(\\spad{p} - 1)."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| (-864 |#1|) (QUOTE (-904))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| (-864 |#1|) (QUOTE (-148))) (|HasCategory| (-864 |#1|) (QUOTE (-150))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-864 |#1|) (QUOTE (-1021))) (|HasCategory| (-864 |#1|) (QUOTE (-815))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| (-864 |#1|) (QUOTE (-1136))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| (-864 |#1|) (QUOTE (-225))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -523) (QUOTE (-1161)) (LIST (QUOTE -864) (|devaluate| |#1|)))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -303) (LIST (QUOTE -864) (|devaluate| |#1|)))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -281) (LIST (QUOTE -864) (|devaluate| |#1|)) (LIST (QUOTE -864) (|devaluate| |#1|)))) (|HasCategory| (-864 |#1|) (QUOTE (-301))) (|HasCategory| (-864 |#1|) (QUOTE (-550))) (|HasCategory| (-864 |#1|) (QUOTE (-842))) (-2198 (|HasCategory| (-864 |#1|) (QUOTE (-815))) (|HasCategory| (-864 |#1|) (QUOTE (-842)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-864 |#1|) (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-864 |#1|) (QUOTE (-904)))) (|HasCategory| (-864 |#1|) (QUOTE (-148))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| (-864 |#1|) (QUOTE (-904))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| (-864 |#1|) (QUOTE (-148))) (|HasCategory| (-864 |#1|) (QUOTE (-150))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| (-864 |#1|) (QUOTE (-1021))) (|HasCategory| (-864 |#1|) (QUOTE (-815))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| (-864 |#1|) (QUOTE (-1136))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| (-864 |#1|) (QUOTE (-225))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -523) (QUOTE (-1161)) (LIST (QUOTE -864) (|devaluate| |#1|)))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -303) (LIST (QUOTE -864) (|devaluate| |#1|)))) (|HasCategory| (-864 |#1|) (LIST (QUOTE -281) (LIST (QUOTE -864) (|devaluate| |#1|)) (LIST (QUOTE -864) (|devaluate| |#1|)))) (|HasCategory| (-864 |#1|) (QUOTE (-301))) (|HasCategory| (-864 |#1|) (QUOTE (-550))) (|HasCategory| (-864 |#1|) (QUOTE (-842))) (-2199 (|HasCategory| (-864 |#1|) (QUOTE (-815))) (|HasCategory| (-864 |#1|) (QUOTE (-842)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-864 |#1|) (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| (-864 |#1|) (QUOTE (-904)))) (|HasCategory| (-864 |#1|) (QUOTE (-148))))) 
 (-866 |p| PADIC) 
 ((|constructor| (NIL "This is the category of stream-based representations of \\spad{Qp}.")) (|removeZeroes| (($ (|Integer|) $) "\\spad{removeZeroes(n,{}x)} removes up to \\spad{n} leading zeroes from the \\spad{p}-adic rational \\spad{x}.") (($ $) "\\spad{removeZeroes(x)} removes leading zeroes from the representation of the \\spad{p}-adic rational \\spad{x}. A \\spad{p}-adic rational is represented by (1) an exponent and (2) a \\spad{p}-adic integer which may have leading zero digits. When the \\spad{p}-adic integer has a leading zero digit,{} a 'leading zero' is removed from the \\spad{p}-adic rational as follows: the number is rewritten by increasing the exponent by 1 and dividing the \\spad{p}-adic integer by \\spad{p}. Note: \\spad{removeZeroes(f)} removes all leading zeroes from \\spad{f}.")) (|continuedFraction| (((|ContinuedFraction| (|Fraction| (|Integer|))) $) "\\spad{continuedFraction(x)} converts the \\spad{p}-adic rational number \\spad{x} to a continued fraction.")) (|approximate| (((|Fraction| (|Integer|)) $ (|Integer|)) "\\spad{approximate(x,{}n)} returns a rational number \\spad{y} such that \\spad{y = x (mod p^n)}."))) 
-((-4511 . T) (-4517 . T) (-4512 . T) ((-4521 "*") . T) (-4513 . T) (-4514 . T) (-4516 . T)) 
-((|HasCategory| |#2| (QUOTE (-904))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (QUOTE (-1021))) (|HasCategory| |#2| (QUOTE (-815))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1136))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (LIST (QUOTE -523) (QUOTE (-1161)) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -281) (|devaluate| |#2|) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-301))) (|HasCategory| |#2| (QUOTE (-550))) (|HasCategory| |#2| (QUOTE (-842))) (-2198 (|HasCategory| |#2| (QUOTE (-815))) (|HasCategory| |#2| (QUOTE (-842)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (-2198 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (|HasCategory| |#2| (QUOTE (-148))))) 
+((-4513 . T) (-4519 . T) (-4514 . T) ((-4523 "*") . T) (-4515 . T) (-4516 . T) (-4518 . T)) 
+((|HasCategory| |#2| (QUOTE (-904))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-1161)))) (|HasCategory| |#2| (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-150))) (|HasCategory| |#2| (LIST (QUOTE -609) (QUOTE (-541)))) (|HasCategory| |#2| (QUOTE (-1021))) (|HasCategory| |#2| (QUOTE (-815))) (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-1136))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-568)))) (|HasCategory| |#2| (LIST (QUOTE -881) (QUOTE (-381)))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-381))))) (|HasCategory| |#2| (LIST (QUOTE -609) (LIST (QUOTE -887) (QUOTE (-568))))) (|HasCategory| |#2| (LIST (QUOTE -630) (QUOTE (-568)))) (|HasCategory| |#2| (QUOTE (-225))) (|HasCategory| |#2| (LIST (QUOTE -895) (QUOTE (-1161)))) (|HasCategory| |#2| (LIST (QUOTE -523) (QUOTE (-1161)) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -303) (|devaluate| |#2|))) (|HasCategory| |#2| (LIST (QUOTE -281) (|devaluate| |#2|) (|devaluate| |#2|))) (|HasCategory| |#2| (QUOTE (-301))) (|HasCategory| |#2| (QUOTE (-550))) (|HasCategory| |#2| (QUOTE (-842))) (-2199 (|HasCategory| |#2| (QUOTE (-815))) (|HasCategory| |#2| (QUOTE (-842)))) (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (-2199 (-12 (|HasCategory| $ (QUOTE (-148))) (|HasCategory| |#2| (QUOTE (-904)))) (|HasCategory| |#2| (QUOTE (-148))))) 
 (-867 K |symb| BLMET) 
 ((|constructor| (NIL "A package that implements the Brill-Noether algorithm. Part of the PAFF package")) (|ZetaFunction| (((|UnivariateTaylorSeriesCZero| (|Integer|) |t|) (|PositiveInteger|)) "Returns the Zeta function of the curve in constant field extension. Calculated by using the \\spad{L}-Polynomial") (((|UnivariateTaylorSeriesCZero| (|Integer|) |t|)) "Returns the Zeta function of the curve. Calculated by using the \\spad{L}-Polynomial")) (|numberPlacesDegExtDeg| (((|Integer|) (|PositiveInteger|) (|PositiveInteger|)) "numberRatPlacesExtDegExtDeg(\\spad{d},{} \\spad{n}) returns the number of places of degree \\spad{d} in the constant field extension of degree \\spad{n}")) (|numberRatPlacesExtDeg| (((|Integer|) (|PositiveInteger|)) "\\spad{numberRatPlacesExtDeg(n)} returns the number of rational places in the constant field extenstion of degree \\spad{n}")) (|numberOfPlacesOfDegree| (((|Integer|) (|PositiveInteger|)) "returns the number of places of the given degree")) (|placesOfDegree| (((|List| (|PlacesOverPseudoAlgebraicClosureOfFiniteField| |#1|)) (|PositiveInteger|)) "\\spad{placesOfDegree(d)} returns all places of degree \\spad{d} of the curve.")) (|classNumber| (((|Integer|)) "Returns the class number of the curve.")) (|LPolynomial| (((|SparseUnivariatePolynomial| (|Integer|)) (|PositiveInteger|)) "\\spad{LPolynomial(d)} returns the \\spad{L}-Polynomial of the curve in constant field extension of degree \\spad{d}.") (((|SparseUnivariatePolynomial| (|Integer|))) "Returns the \\spad{L}-Polynomial of the curve.")) (|adjunctionDivisor| (((|Divisor| (|PlacesOverPseudoAlgebraicClosureOfFiniteField| |#1|))) "\\spad{adjunctionDivisor computes} the adjunction divisor of the plane curve given by the polynomial defined by setCurve.")) (|intersectionDivisor| (((|Divisor| (|PlacesOverPseudoAlgebraicClosureOfFiniteField| |#1|)) (|DistributedMultivariatePolynomial| |#2| |#1|)) "\\spad{intersectionDivisor(pol)} compute the intersection divisor of the form \\spad{pol} with the curve. (If \\spad{pol} is not homogeneous an error message is issued).")) (|evalIfCan| (((|Union| |#1| "failed") (|Fraction| (|DistributedMultivariatePolynomial| |#2| |#1|)) (|PlacesOverPseudoAlgebraicClosureOfFiniteField| |#1|)) "\\spad{evalIfCan(u,{}pl)} evaluate the function \\spad{u} at the place \\spad{pl} (returns \"failed\" if it is a pole).") (((|Union| |#1| "failed") (|DistributedMultivariatePolynomial| |#2| |#1|) (|DistributedMultivariatePolynomial| |#2| |#1|) (|PlacesOverPseudoAlgebraicClosureOfFiniteField| |#1|)) "\\spad{evalIfCan(f,{}g,{}pl)} evaluate the function \\spad{f/g} at the place \\spad{pl} (returns \"failed\" if it is a pole).") (((|Union| |#1| "failed") (|DistributedMultivariatePolynomial| |#2| |#1|) (|PlacesOverPseudoAlgebraicClosureOfFiniteField| |#1|)) "\\spad{evalIfCan(f,{}pl)} evaluate \\spad{f} at the place \\spad{pl} (returns \"failed\" if it is a pole).")) (|eval| ((|#1| (|Fraction| (|DistributedMultivariatePolynomial| |#2| |#1|)) (|PlacesOverPseudoAlgebraicClosureOfFiniteField| |#1|)) "\\spad{eval(u,{}pl)} evaluate the function \\spad{u} at the place \\spad{pl}.") ((|#1| (|DistributedMultivariatePolynomial| |#2| |#1|) (|DistributedMultivariatePolynomial| |#2| |#1|) (|PlacesOverPseudoAlgebraicClosureOfFiniteField| |#1|)) "\\spad{eval(f,{}g,{}pl)} evaluate the function \\spad{f/g} at the place \\spad{pl}.") ((|#1| (|DistributedMultivariatePolynomial| |#2| |#1|) (|PlacesOverPseudoAlgebraicClosureOfFiniteField| |#1|)) "\\spad{eval(f,{}pl)} evaluate \\spad{f} at the place \\spad{pl}.")) (|interpolateForms| (((|List| (|DistributedMultivariatePolynomial| |#2| |#1|)) (|Divisor| (|PlacesOverPseudoAlgebraicClosureOfFiniteField| |#1|)) (|NonNegativeInteger|)) "\\spad{interpolateForms(d,{}n)} returns a basis of the interpolate forms of degree \\spad{n} of the divisor \\spad{d}.")) (|lBasis| (((|Record| (|:| |num| (|List| (|DistributedMultivariatePolynomial| |#2| |#1|))) (|:| |den| (|DistributedMultivariatePolynomial| |#2| |#1|))) (|Divisor| (|PlacesOverPseudoAlgebraicClosureOfFiniteField| |#1|))) "\\spad{lBasis computes} a basis associated to the specified divisor")) (|parametrize| (((|NeitherSparseOrDensePowerSeries| (|PseudoAlgebraicClosureOfFiniteField| |#1|)) (|DistributedMultivariatePolynomial| |#2| |#1|) (|PlacesOverPseudoAlgebraicClosureOfFiniteField| |#1|)) "\\spad{parametrize(f,{}pl)} returns a local parametrization of \\spad{f} at the place \\spad{pl}.")) (|singularPoints| (((|List| (|ProjectivePlaneOverPseudoAlgebraicClosureOfFiniteField| |#1|))) "rationalPoints() returns the singular points of the curve defined by the polynomial given to the package. If the singular points lie in an extension of the specified ground field an error message is issued specifying the extension degree needed to find all singular points.")) (|desingTree| (((|List| (|DesingTree| (|InfinitlyClosePointOverPseudoAlgebraicClosureOfFiniteField| |#1| |#2| |#3|)))) "\\spad{desingTree returns} the desingularisation trees at all singular points of the curve defined by the polynomial given to the package.")) (|desingTreeWoFullParam| (((|List| (|DesingTree| (|InfinitlyClosePointOverPseudoAlgebraicClosureOfFiniteField| |#1| |#2| |#3|)))) "\\spad{desingTreeWoFullParam returns} the desingularisation trees at all singular points of the curve defined by the polynomial given to the package. The local parametrizations are not computed.")) (|genus| (((|NonNegativeInteger|)) "\\spad{genus returns} the genus of the curve defined by the polynomial given to the package.")) (|theCurve| (((|DistributedMultivariatePolynomial| |#2| |#1|)) "\\spad{theCurve returns} the specified polynomial for the package.")) (|rationalPlaces| (((|List| (|PlacesOverPseudoAlgebraicClosureOfFiniteField| |#1|))) "\\spad{rationalPlaces returns} all the rational places of the curve defined by the polynomial given to the package.")) (|pointDominateBy| (((|ProjectivePlaneOverPseudoAlgebraicClosureOfFiniteField| |#1|) (|PlacesOverPseudoAlgebraicClosureOfFiniteField| |#1|)) "\\spad{pointDominateBy(pl)} returns the projective point dominated by the place \\spad{pl}."))) 
 NIL 
@@ -3459,7 +3459,7 @@ NIL
 (-882 |Base| |Subject| |Pat|) 
 ((|constructor| (NIL "This package provides the top-level pattern macthing functions.")) (|Is| (((|PatternMatchResult| |#1| |#2|) |#2| |#3|) "\\spad{Is(expr,{} pat)} matches the pattern pat on the expression \\spad{expr} and returns a match of the form \\spad{[v1 = e1,{}...,{}vn = en]}; returns an empty match if \\spad{expr} is exactly equal to pat. returns a \\spadfun{failed} match if pat does not match \\spad{expr}.") (((|List| (|Equation| (|Polynomial| |#2|))) |#2| |#3|) "\\spad{Is(expr,{} pat)} matches the pattern pat on the expression \\spad{expr} and returns a list of matches \\spad{[v1 = e1,{}...,{}vn = en]}; returns an empty list if either \\spad{expr} is exactly equal to pat or if pat does not match \\spad{expr}.") (((|List| (|Equation| |#2|)) |#2| |#3|) "\\spad{Is(expr,{} pat)} matches the pattern pat on the expression \\spad{expr} and returns a list of matches \\spad{[v1 = e1,{}...,{}vn = en]}; returns an empty list if either \\spad{expr} is exactly equal to pat or if pat does not match \\spad{expr}.") (((|PatternMatchListResult| |#1| |#2| (|List| |#2|)) (|List| |#2|) |#3|) "\\spad{Is([e1,{}...,{}en],{} pat)} matches the pattern pat on the list of expressions \\spad{[e1,{}...,{}en]} and returns the result.")) (|is?| (((|Boolean|) (|List| |#2|) |#3|) "\\spad{is?([e1,{}...,{}en],{} pat)} tests if the list of expressions \\spad{[e1,{}...,{}en]} matches the pattern pat.") (((|Boolean|) |#2| |#3|) "\\spad{is?(expr,{} pat)} tests if the expression \\spad{expr} matches the pattern pat."))) 
 NIL 
-((|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-1161)))) (-12 (-3044 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-1161))))) (-3044 (|HasCategory| |#2| (QUOTE (-1047))))) (-12 (|HasCategory| |#2| (QUOTE (-1047))) (-3044 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-1161))))))) 
+((|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-1161)))) (-12 (-3046 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-1161))))) (-3046 (|HasCategory| |#2| (QUOTE (-1047))))) (-12 (|HasCategory| |#2| (QUOTE (-1047))) (-3046 (|HasCategory| |#2| (LIST (QUOTE -1037) (QUOTE (-1161))))))) 
 (-883 R A B) 
 ((|constructor| (NIL "Lifts maps to pattern matching results.")) (|map| (((|PatternMatchResult| |#1| |#3|) (|Mapping| |#3| |#2|) (|PatternMatchResult| |#1| |#2|)) "\\spad{map(f,{} [(v1,{}a1),{}...,{}(vn,{}an)])} returns the matching result [(\\spad{v1},{}\\spad{f}(\\spad{a1})),{}...,{}(\\spad{vn},{}\\spad{f}(an))]."))) 
 NIL 
@@ -3468,7 +3468,7 @@ NIL
 ((|constructor| (NIL "A PatternMatchResult is an object internally returned by the pattern matcher; It is either a failed match,{} or a list of matches of the form (var,{} expr) meaning that the variable var matches the expression expr.")) (|satisfy?| (((|Union| (|Boolean|) "failed") $ (|Pattern| |#1|)) "\\spad{satisfy?(r,{} p)} returns \\spad{true} if the matches satisfy the top-level predicate of \\spad{p},{} \\spad{false} if they don\\spad{'t},{} and \"failed\" if not enough variables of \\spad{p} are matched in \\spad{r} to decide.")) (|construct| (($ (|List| (|Record| (|:| |key| (|Symbol|)) (|:| |entry| |#2|)))) "\\spad{construct([v1,{}e1],{}...,{}[vn,{}en])} returns the match result containing the matches (\\spad{v1},{}\\spad{e1}),{}...,{}(\\spad{vn},{}en).")) (|destruct| (((|List| (|Record| (|:| |key| (|Symbol|)) (|:| |entry| |#2|))) $) "\\spad{destruct(r)} returns the list of matches (var,{} expr) in \\spad{r}. Error: if \\spad{r} is a failed match.")) (|addMatchRestricted| (($ (|Pattern| |#1|) |#2| $ |#2|) "\\spad{addMatchRestricted(var,{} expr,{} r,{} val)} adds the match (\\spad{var},{} \\spad{expr}) in \\spad{r},{} provided that \\spad{expr} satisfies the predicates attached to \\spad{var},{} that \\spad{var} is not matched to another expression already,{} and that either \\spad{var} is an optional pattern variable or that \\spad{expr} is not equal to val (usually an identity).")) (|insertMatch| (($ (|Pattern| |#1|) |#2| $) "\\spad{insertMatch(var,{} expr,{} r)} adds the match (\\spad{var},{} \\spad{expr}) in \\spad{r},{} without checking predicates or previous matches for \\spad{var}.")) (|addMatch| (($ (|Pattern| |#1|) |#2| $) "\\spad{addMatch(var,{} expr,{} r)} adds the match (\\spad{var},{} \\spad{expr}) in \\spad{r},{} provided that \\spad{expr} satisfies the predicates attached to \\spad{var},{} and that \\spad{var} is not matched to another expression already.")) (|getMatch| (((|Union| |#2| "failed") (|Pattern| |#1|) $) "\\spad{getMatch(var,{} r)} returns the expression that \\spad{var} matches in the result \\spad{r},{} and \"failed\" if \\spad{var} is not matched in \\spad{r}.")) (|union| (($ $ $) "\\spad{union(a,{} b)} makes the set-union of two match results.")) (|new| (($) "\\spad{new()} returns a new empty match result.")) (|failed| (($) "\\spad{failed()} returns a failed match.")) (|failed?| (((|Boolean|) $) "\\spad{failed?(r)} tests if \\spad{r} is a failed match."))) 
 NIL 
 NIL 
-(-885 R -3190) 
+(-885 R -3192) 
 ((|constructor| (NIL "Utilities for handling patterns")) (|badValues| (((|List| |#2|) (|Pattern| |#1|)) "\\spad{badValues(p)} returns the list of \"bad values\" for \\spad{p}; \\spad{p} is not allowed to match any of its \"bad values\".")) (|addBadValue| (((|Pattern| |#1|) (|Pattern| |#1|) |#2|) "\\spad{addBadValue(p,{} v)} adds \\spad{v} to the list of \"bad values\" for \\spad{p}; \\spad{p} is not allowed to match any of its \"bad values\".")) (|satisfy?| (((|Boolean|) (|List| |#2|) (|Pattern| |#1|)) "\\spad{satisfy?([v1,{}...,{}vn],{} p)} returns \\spad{f(v1,{}...,{}vn)} where \\spad{f} is the top-level predicate attached to \\spad{p}.") (((|Boolean|) |#2| (|Pattern| |#1|)) "\\spad{satisfy?(v,{} p)} returns \\spad{f}(\\spad{v}) where \\spad{f} is the predicate attached to \\spad{p}.")) (|predicate| (((|Mapping| (|Boolean|) |#2|) (|Pattern| |#1|)) "\\spad{predicate(p)} returns the predicate attached to \\spad{p},{} the constant function \\spad{true} if \\spad{p} has no predicates attached to it.")) (|suchThat| (((|Pattern| |#1|) (|Pattern| |#1|) (|List| (|Symbol|)) (|Mapping| (|Boolean|) (|List| |#2|))) "\\spad{suchThat(p,{} [a1,{}...,{}an],{} f)} returns a copy of \\spad{p} with the top-level predicate set to \\spad{f(a1,{}...,{}an)}.") (((|Pattern| |#1|) (|Pattern| |#1|) (|List| (|Mapping| (|Boolean|) |#2|))) "\\spad{suchThat(p,{} [f1,{}...,{}fn])} makes a copy of \\spad{p} and adds the predicate \\spad{f1} and ... and \\spad{fn} to the copy,{} which is returned.") (((|Pattern| |#1|) (|Pattern| |#1|) (|Mapping| (|Boolean|) |#2|)) "\\spad{suchThat(p,{} f)} makes a copy of \\spad{p} and adds the predicate \\spad{f} to the copy,{} which is returned."))) 
 NIL 
 NIL 
@@ -3510,7 +3510,7 @@ NIL
 NIL 
 (-895 S) 
 ((|constructor| (NIL "A partial differential ring with differentiations indexed by a parameter type \\spad{S}. \\blankline Axioms\\spad{\\br} \\tab{5}\\spad{differentiate(x+y,{}e)=differentiate(x,{}e)+differentiate(y,{}e)}\\spad{\\br} \\tab{5}\\spad{differentiate(x*y,{}e)=x*differentiate(y,{}e)+differentiate(x,{}e)*y}")) (D (($ $ (|List| |#1|) (|List| (|NonNegativeInteger|))) "\\spad{D(x,{} [s1,{}...,{}sn],{} [n1,{}...,{}nn])} computes multiple partial derivatives,{} \\spadignore{i.e.} \\spad{D(...D(x,{} s1,{} n1)...,{} sn,{} nn)}.") (($ $ |#1| (|NonNegativeInteger|)) "\\spad{D(x,{} s,{} n)} computes multiple partial derivatives,{} \\spadignore{i.e.} \\spad{n}-th derivative of \\spad{x} with respect to \\spad{s}.") (($ $ (|List| |#1|)) "\\spad{D(x,{}[s1,{}...sn])} computes successive partial derivatives,{} \\spadignore{i.e.} \\spad{D(...D(x,{} s1)...,{} sn)}.") (($ $ |#1|) "\\spad{D(x,{}v)} computes the partial derivative of \\spad{x} with respect to \\spad{v}.")) (|differentiate| (($ $ (|List| |#1|) (|List| (|NonNegativeInteger|))) "\\spad{differentiate(x,{} [s1,{}...,{}sn],{} [n1,{}...,{}nn])} computes multiple partial derivatives,{} \\spadignore{i.e.}") (($ $ |#1| (|NonNegativeInteger|)) "\\spad{differentiate(x,{} s,{} n)} computes multiple partial derivatives,{} \\spadignore{i.e.} \\spad{n}-th derivative of \\spad{x} with respect to \\spad{s}.") (($ $ (|List| |#1|)) "\\spad{differentiate(x,{}[s1,{}...sn])} computes successive partial derivatives,{} \\spadignore{i.e.} \\spad{differentiate(...differentiate(x,{} s1)...,{} sn)}.") (($ $ |#1|) "\\spad{differentiate(x,{}v)} computes the partial derivative of \\spad{x} with respect to \\spad{v}."))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-896 S) 
 ((|constructor| (NIL "This domain has no description")) (|coerce| (((|Tree| |#1|) $) "\\indented{1}{coerce(\\spad{x}) is not documented} \\blankline \\spad{X} t1:=ptree([1,{}2,{}3]) \\spad{X} t2:=ptree(\\spad{t1},{}ptree([1,{}2,{}3])) \\spad{X} t2::Tree List PositiveInteger")) (|ptree| (($ $ $) "\\indented{1}{ptree(\\spad{x},{}\\spad{y}) is not documented} \\blankline \\spad{X} t1:=ptree([1,{}2,{}3]) \\spad{X} ptree(\\spad{t1},{}ptree([1,{}2,{}3]))") (($ |#1|) "\\indented{1}{ptree(\\spad{s}) is a leaf? pendant tree} \\blankline \\spad{X} t1:=ptree([1,{}2,{}3])"))) 
@@ -3522,7 +3522,7 @@ NIL
 NIL 
 (-898 S) 
 ((|constructor| (NIL "PermutationCategory provides a categorial environment for subgroups of bijections of a set (\\spadignore{i.e.} permutations)")) (< (((|Boolean|) $ $) "\\spad{p < q} is an order relation on permutations. Note that this order is only total if and only if \\spad{S} is totally ordered or \\spad{S} is finite.")) (|orbit| (((|Set| |#1|) $ |#1|) "\\spad{orbit(p,{} el)} returns the orbit of el under the permutation \\spad{p},{} \\spadignore{i.e.} the set which is given by applications of the powers of \\spad{p} to el.")) (|elt| ((|#1| $ |#1|) "\\spad{elt(p,{} el)} returns the image of el under the permutation \\spad{p}.")) (|eval| ((|#1| $ |#1|) "\\spad{eval(p,{} el)} returns the image of el under the permutation \\spad{p}.")) (|cycles| (($ (|List| (|List| |#1|))) "\\spad{cycles(lls)} coerces a list list of cycles \\spad{lls} to a permutation,{} each cycle being a list with not repetitions,{} is coerced to the permutation,{} which maps \\spad{ls}.\\spad{i} to \\spad{ls}.\\spad{i+1},{} indices modulo the length of the list,{} then these permutations are mutiplied. Error: if repetitions occur in one cycle.")) (|cycle| (($ (|List| |#1|)) "\\spad{cycle(ls)} coerces a cycle \\spad{ls},{} \\spadignore{i.e.} a list with not repetitions to a permutation,{} which maps \\spad{ls}.\\spad{i} to \\spad{ls}.\\spad{i+1},{} indices modulo the length of the list. Error: if repetitions occur."))) 
-((-4516 . T)) 
+((-4518 . T)) 
 NIL 
 (-899 S) 
 ((|constructor| (NIL "PermutationGroup implements permutation groups acting on a set \\spad{S},{} \\spadignore{i.e.} all subgroups of the symmetric group of \\spad{S},{} represented as a list of permutations (generators). Note that therefore the objects are not members of the \\Language category \\spadtype{Group}. Using the idea of base and strong generators by Sims,{} basic routines and algorithms are implemented so that the word problem for permutation groups can be solved.")) (|initializeGroupForWordProblem| (((|Void|) $ (|Integer|) (|Integer|)) "\\spad{initializeGroupForWordProblem(gp,{}m,{}n)} initializes the group \\spad{gp} for the word problem. Notes: (1) with a small integer you get shorter words,{} but the routine takes longer than the standard routine for longer words. (2) be careful: invoking this routine will destroy the possibly stored information about your group (but will recompute it again). (3) users need not call this function normally for the soultion of the word problem.") (((|Void|) $) "\\spad{initializeGroupForWordProblem(gp)} initializes the group \\spad{gp} for the word problem. Notes: it calls the other function of this name with parameters 0 and 1: initializeGroupForWordProblem(\\spad{gp},{}0,{}1). Notes: (1) be careful: invoking this routine will destroy the possibly information about your group (but will recompute it again) (2) users need not call this function normally for the soultion of the word problem.")) (<= (((|Boolean|) $ $) "\\spad{gp1 <= gp2} returns \\spad{true} if and only if \\spad{gp1} is a subgroup of \\spad{gp2}. Note: because of a bug in the parser you have to call this function explicitly by \\spad{gp1} \\spad{<=}\\$(PERMGRP \\spad{S}) \\spad{gp2}.")) (< (((|Boolean|) $ $) "\\spad{gp1 < gp2} returns \\spad{true} if and only if \\spad{gp1} is a proper subgroup of \\spad{gp2}.")) (|movedPoints| (((|Set| |#1|) $) "\\spad{movedPoints(gp)} returns the points moved by the group \\spad{gp}.")) (|wordInGenerators| (((|List| (|NonNegativeInteger|)) (|Permutation| |#1|) $) "\\spad{wordInGenerators(p,{}gp)} returns the word for the permutation \\spad{p} in the original generators of the group \\spad{gp},{} represented by the indices of the list,{} given by generators.")) (|wordInStrongGenerators| (((|List| (|NonNegativeInteger|)) (|Permutation| |#1|) $) "\\spad{wordInStrongGenerators(p,{}gp)} returns the word for the permutation \\spad{p} in the strong generators of the group \\spad{gp},{} represented by the indices of the list,{} given by strongGenerators.")) (|member?| (((|Boolean|) (|Permutation| |#1|) $) "\\spad{member?(pp,{}gp)} answers the question,{} whether the permutation \\spad{pp} is in the group \\spad{gp} or not.")) (|orbits| (((|Set| (|Set| |#1|)) $) "\\spad{orbits(gp)} returns the orbits of the group \\spad{gp},{} \\spadignore{i.e.} it partitions the (finite) of all moved points.")) (|orbit| (((|Set| (|List| |#1|)) $ (|List| |#1|)) "\\spad{orbit(gp,{}ls)} returns the orbit of the ordered list \\spad{ls} under the group \\spad{gp}. Note: return type is \\spad{L} \\spad{L} \\spad{S} temporarily because FSET \\spad{L} \\spad{S} has an error.") (((|Set| (|Set| |#1|)) $ (|Set| |#1|)) "\\spad{orbit(gp,{}els)} returns the orbit of the unordered set \\spad{els} under the group \\spad{gp}.") (((|Set| |#1|) $ |#1|) "\\spad{orbit(gp,{}el)} returns the orbit of the element \\spad{el} under the group \\spad{gp},{} \\spadignore{i.e.} the set of all points gained by applying each group element to \\spad{el}.")) (|permutationGroup| (($ (|List| (|Permutation| |#1|))) "\\spad{permutationGroup(ls)} coerces a list of permutations \\spad{ls} to the group generated by this list.")) (|wordsForStrongGenerators| (((|List| (|List| (|NonNegativeInteger|))) $) "\\spad{wordsForStrongGenerators(gp)} returns the words for the strong generators of the group \\spad{gp} in the original generators of \\spad{gp},{} represented by their indices in the list,{} given by generators.")) (|strongGenerators| (((|List| (|Permutation| |#1|)) $) "\\spad{strongGenerators(gp)} returns strong generators for the group \\spad{gp}.")) (|base| (((|List| |#1|) $) "\\spad{base(gp)} returns a base for the group \\spad{gp}.")) (|degree| (((|NonNegativeInteger|) $) "\\spad{degree(gp)} returns the number of points moved by all permutations of the group \\spad{gp}.")) (|order| (((|NonNegativeInteger|) $) "\\spad{order(gp)} returns the order of the group \\spad{gp}.")) (|random| (((|Permutation| |#1|) $) "\\spad{random(gp)} returns a random product of maximal 20 generators of the group \\spad{gp}. Note: random(\\spad{gp})=random(\\spad{gp},{}20).") (((|Permutation| |#1|) $ (|Integer|)) "\\spad{random(gp,{}i)} returns a random product of maximal \\spad{i} generators of the group \\spad{gp}.")) (|elt| (((|Permutation| |#1|) $ (|NonNegativeInteger|)) "\\spad{elt(gp,{}i)} returns the \\spad{i}-th generator of the group \\spad{gp}.")) (|generators| (((|List| (|Permutation| |#1|)) $) "\\spad{generators(gp)} returns the generators of the group \\spad{gp}.")) (|coerce| (($ (|List| (|Permutation| |#1|))) "\\spad{coerce(ls)} coerces a list of permutations \\spad{ls} to the group generated by this list.") (((|List| (|Permutation| |#1|)) $) "\\spad{coerce(gp)} returns the generators of the group \\spad{gp}."))) 
@@ -3530,8 +3530,8 @@ NIL
 NIL 
 (-900 S) 
 ((|constructor| (NIL "Permutation(\\spad{S}) implements the group of all bijections on a set \\spad{S},{} which move only a finite number of points. A permutation is considered as a map from \\spad{S} into \\spad{S}. In particular multiplication is defined as composition of maps:\\spad{\\br} \\spad{pi1} * \\spad{pi2} = \\spad{pi1} \\spad{o} \\spad{pi2}.\\spad{\\br} The internal representation of permuatations are two lists of equal length representing preimages and images.")) (|coerceImages| (($ (|List| |#1|)) "\\spad{coerceImages(ls)} coerces the list \\spad{ls} to a permutation whose image is given by \\spad{ls} and the preimage is fixed to be [1,{}...,{}\\spad{n}]. Note: {coerceImages(\\spad{ls})=coercePreimagesImages([1,{}...,{}\\spad{n}],{}\\spad{ls})}. We assume that both preimage and image do not contain repetitions.")) (|fixedPoints| (((|Set| |#1|) $) "\\indented{1}{fixedPoints(\\spad{p}) returns the points fixed by the permutation \\spad{p}.} \\spad{X} \\spad{p} \\spad{:=} coercePreimagesImages([[0,{}1,{}2,{}3],{}[3,{}0,{}2,{}1]])\\$PERM ZMOD 4 \\spad{X} fixedPoints \\spad{p}")) (|sort| (((|List| $) (|List| $)) "\\spad{sort(lp)} sorts a list of permutations \\spad{lp} according to cycle structure first according to length of cycles,{} second,{} if \\spad{S} has \\spadtype{Finite} or \\spad{S} has \\spadtype{Ordere