diff --git a/books/bookvol0.pamphlet b/books/bookvol0.pamphlet index b7f869d..cbe733b 100644 --- a/books/bookvol0.pamphlet +++ b/books/bookvol0.pamphlet @@ -48744,6 +48744,481 @@ page~\pageref{MultivariatePolynomialXmpPage}, and \ref{DistributedMultivariatePolynomialXmpPage} on page~\pageref{DistributedMultivariatePolynomialXmpPage}. +\section{UnivariateSkewPolynomial} +\label{UnivariateSkewPolynomial} +Skew or Ore polynomial rings provide a unified framework to +compute with differential and difference equations. + +In the following, let A be an integral domain, equipped with two +endomorphisms $\sigma$ and $\delta$ where: +\begin{itemize} +\item $\sigma$: A $->$ A is an injective ring endomorphism +\item $\delta$: A $->$ A, the pseudo-derivation with respect to $\sigma$, +is an additive endomorphism with +$$ + \delta(ab) = \sigma(a)\delta(b) + \delta(a)b +$$ +for all $a,b$ in A +\end{itemize} + +The skew polynomial ring $[\Delta;\sigma,\delta]$ is the ring of +polynomials in $\Delta$ with coefficients in A, with the usual addition, +while the product is given by +$$ + \Delta a = \sigma(a)\Delta + \delta(a)\quad{}{\rm\ for\ a\ in\ A} +$$ +The two most important examples of skew polynomial rings are: +\begin{itemize} +\item $K(x)[D,1,\delta]$, where 1 is the identity on $K$ and $\delta$ is +the usual derviative, is the ring of differential polynomials +\item $K_n [E,n,\mapsto n+1,0]$ is the ring of linear recurrence operators +with polynomial coefficients +\end{itemize} + +The UnivariateSkewPolynomialCategory (OREPCAT) provides a unified +framework for polynomial rings in a non-central indeterminate over +some coefficient ring R. The commutation relations between the +indeterminate $x$ and the coefficient $t$ is given by +$$ +x r = \sigma(r) x + \delta(r) +$$ +where $\sigma$ is a ring endomorphism of R +and $\delta$ is a $\sigma$-derivation of R +which is an additive map from R to R such that +$$ +\delta(rs) = \sigma(r) \delta(s) + \delta(r) s +$$ +In case $\sigma$ is the identity map on R, a $\sigma$-derivation of R +is just called a derivation. Here are some examples + +We start with a linear ordinary differential operator. First, we +define the coefficient ring to be expressions in one variable $x$ +with fractional coefficients: + +\spadcommand{F:=EXPR(FRAC(INT))} + +Define Dx to be a derivative d/dx: + +\spadcommand{Dx:F->F:=f+->D(f,['x])} + +Define a skew polynomial ring over F with identity endomorphism as +$\sigma$ and derivation d/dx as $\delta$: + +\spadcommand{D0:=OREUP('d,F,1,Dx)} + +\spadcommand{u:D0:=(operator 'u)(x)} +$$ +u +\left( +{x} +\right) +$$ + +\spadcommand{d:D0:='d} +$$ +d +$$ + +\spadcommand{a:D0:=u**3*d**3+u**2*d**2+u*d+1} +$$ +{{{u +\left( +{x} +\right)}^3} +\ {d^3}}+{{{u +\left( +{x} +\right)}^2} +\ {d^2}}+{{u +\left( +{x} +\right)} +\ d}+1 +$$ + +\spadcommand{b:D0:=(u+1)*d**2+2*d} +$$ +{{\left( {u +\left( +{x} +\right)}+1 +\right)} +\ {d^2}}+{2 \ d} +$$ + +\spadcommand{r:=rightDivide(a,b)} +$$ +\left[ +\begin{array}{c} +\displaystyle +{quotient={{{ \frac{{{u +\left( +{x} +\right)}^3}}{{{u +\left( +{x} +\right)}+1}}} +\ d}+{ \frac{{-{{{u +\left( +{x} +\right)}^3} +\ {{u \sb {{\ }} \sp {,}} +\left( +{x} +\right)}} +-{{u +\left( +{x} +\right)}^3}+{{u +\left( +{x} +\right)}^2}}}{{{{u +\left( +{x} +\right)}^2}+{2 +\ {u +\left( +{x} +\right)}}+1}}}}},\\ +\displaystyle +\: {remainder={{{ \frac{{{2 \ {{u +\left( +{x} +\right)}^3} +\ {{u \sb {{\ }} \sp {,}} +\left( +{x} +\right)}}+{3 +\ {{u +\left( +{x} +\right)}^3}}+{u +\left( +{x} +\right)}}}{{{{u +\left( +{x} +\right)}^2}+{2 +\ {u +\left( +{x} +\right)}}+1}}} +\ d}+1}} +\end{array} +\right] +$$ + +\spadcommand{r.quotient} +$$ +{{ \frac{{{u +\left( +{x} +\right)}^3}}{{{u +\left( +{x} +\right)}+1}}} +\ d}+{ \frac{{-{{{u +\left( +{x} +\right)}^3} +\ {{u \sb {{\ }} \sp {,}} +\left( +{x} +\right)}} +-{{u +\left( +{x} +\right)}^3}+{{u +\left( +{x} +\right)}^2}}}{{{{u +\left( +{x} +\right)}^2}+{2 +\ {u +\left( +{x} +\right)}}+1}}} +$$ + +\spadcommand{r.remainder} +$$ +{{ \frac{{{2 \ {{u +\left( +{x} +\right)}^3} +\ {{u \sb {{\ }} \sp {,}} +\left( +{x} +\right)}}+{3 +\ {{u +\left( +{x} +\right)}^3}}+{u +\left( +{x} +\right)}}}{{{{u +\left( +{x} +\right)}^2}+{2 +\ {u +\left( +{x} +\right)}}+1}}} +\ d}+1 +$$ + +\subsection{A second example} +)clear all + +As a second example, we consider the so-called Weyl algebra. + +Define the coefficient ring to be an ordinary polynomial over integers +in one variable $t$ +\begin{verbatim} + R:=UP('t,INT) +\end{verbatim} +Define a skew polynomial ring over R with identity map as $\sigma$ +and derivation d/dt as $\delta$. The resulting algebra is then called +a Weyl algebra. This is a simple ring over a division ring that is +non-commutative, similar to the ring of matrices. + +\spadcommand{R:=UP('t,INT)} + +\spadcommand{W:=OREUP('x,R,1,D)} + +\spadcommand{t:W:='t} +$$ +t +$$ + +\spadcommand{x:W:='x} +$$ +x +$$ + +Let + +\spadcommand{a:W:=(t-1)*x**4+(t**3+3*t+1)*x**2+2*t*x+t**3} +$$ +{{\left( t -1 +\right)} +\ {x^4}}+{{\left( {t^3}+{3 \ t}+1 +\right)} +\ {x^2}}+{2 \ t \ x}+{t^3} +$$ + +\spadcommand{b:W:=(6*t**4+2*t**2)*x**3+3*t**2*x**2} +$$ +{{\left( {6 \ {t^4}}+{2 \ {t^2}} +\right)} +\ {x^3}}+{3 \ {t^2} \ {x^2}} +$$ + +Then + +\spadcommand{a*b} +$$ +\begin{array}{l} +{{\left( {6 \ {t^5}} -{6 \ {t^4}}+{2 \ {t^3}} -{2 \ {t^2}} +\right)} +\ {x^7}}+{{\left( {{96} \ {t^4}} -{{93} \ {t^3}}+{{13} \ {t^2}} -{{16} \ +t} +\right)} +\ {x^6}}+\\ +{{\left( {6 \ {t^7}}+{{20} \ {t^5}}+{6 \ {t^4}}+{{438} \ {t^3}} +-{{406} \ {t^2}} -{24} +\right)} +\ {x^5}}+\\ +{{\left( {{48} \ {t^6}}+{{15} \ {t^5}}+{{152} \ {t^4}}+{{61} \ +{t^3}}+{{603} \ {t^2}} -{{532} \ t} -{36} +\right)} +\ {x^4}}+\\ +{{\left( {6 \ {t^7}}+{{74} \ {t^5}}+{{60} \ {t^4}}+{{226} \ +{t^3}}+{{116} \ {t^2}}+{{168} \ t} -{140} +\right)} +\ {x^3}}+\\ +{{\left( {3 \ {t^5}}+{6 \ {t^3}}+{{12} \ {t^2}}+{{18} \ t}+6 +\right)} +\ {x^2}} +\end{array} +$$ + +\spadcommand{a**3} +$$ +\begin{array}{l} +{{\left( {t^3} -{3 \ {t^2}}+{3 \ t} -1 +\right)} +\ {x^{12}}}+{{\left( {3 \ {t^5}} -{6 \ {t^4}}+{{12} \ {t^3}} -{{15} \ +{t^2}}+{3 \ t}+3 +\right)} +\ {x^{10}}}+\\ +{{\left( {6 \ {t^3}} -{{12} \ {t^2}}+{6 \ t} +\right)} +\ {x^9}}+{{\left( {3 \ {t^7}} -{3 \ {t^6}}+{{21} \ {t^5}} -{{18} \ +{t^4}}+{{24} \ {t^3}} -{9 \ {t^2}} -{{15} \ t} -3 +\right)} +\ {x^8}}+\\ +{{\left( {{12} \ {t^5}} -{{12} \ {t^4}}+{{36} \ {t^3}} -{{24} \ +{t^2}} -{{12} \ t} +\right)} +\ {x^7}}+\\ +{{\left( {t^9}+{{15} \ {t^7}} -{3 \ {t^6}}+{{45} \ {t^5}}+{6 \ +{t^4}}+{{36} \ {t^3}}+{{15} \ {t^2}}+{9 \ t}+1 +\right)} +\ {x^6}}+\\ +{{\left( {6 \ {t^7}}+{{48} \ {t^5}}+{{54} \ {t^3}}+{{36} \ +{t^2}}+{6 \ t} +\right)} +\ {x^5}}+\\ +{{\left( {3 \ {t^9}}+{{21} \ {t^7}}+{3 \ {t^6}}+{{39} \ +{t^5}}+{{18} \ {t^4}}+{{39} \ {t^3}}+{{12} \ {t^2}} +\right)} +\ {x^4}}+\\ +{{\left( {{12} \ {t^7}}+{{36} \ {t^5}}+{{12} \ {t^4}}+{8 \ +{t^3}} +\right)} +\ {x^3}}+\\ +{{\left( {3 \ {t^9}}+{9 \ {t^7}}+{3 \ {t^6}}+{{12} \ {t^5}} +\right)} +\ {x^2}}+{6 \ {t^7} \ x}+{t^9} +\end{array} +$$ + + +\subsection{A third example} +)clear all + +As a third example, we construct a difference operator algebra over +the ring of EXPR(INT) by using an automorphism S defined by a +``shift'' operation S:EXPR(INT) $->$ EXPR(INT) +$$ + s(e)(n) = e(n+1) +$$ +and an S-derivation defined by DF:EXPR(INT) $->$ EXPR(INT) as +$$ + DF(e)(n) = e(n+1)-e(n) +$$ +Define S to be a ``shift'' operator, which acts on expressions with +the discrete variable $n$: + +\spadcommand{S:EXPR(INT)->EXPR(INT):=e+->eval(e,[n],[n+1])} + +Define DF to be a ``difference'' operator, which acts on expressions +with a discrete variable $n$: + +\spadcommand{DF:EXPR(INT)->EXPR(INT):=e+->eval(e,[n],[n+1])-e} + +Then define the difference operator algebra D0: + +\spadcommand{D0:=OREUP('D,EXPR(INT),morphism S,DF)} + +\spadcommand{u:=(operator 'u)[n]} +$$ +u +\left( +{n} +\right) +$$ + +\spadcommand{L:D0:='D+u} +$$ +D+{u +\left( +{n} +\right)} +$$ + +\spadcommand{L**2} +$$ +{D^2}+{2 \ {u +\left( +{n} +\right)} +\ D}+{{u +\left( +{n} +\right)}^2} +$$ + +\subsection{A fourth example} +)clear all + +As a fourth example, we construct a skew polynomial ring by using an +inner derivation $\delta$ induced by a fixed $y$ in R: +$$ + \delta(r) = yr - ry +$$ +First we should expose the constructor SquareMatrix so it is visible +in the interpreter: +\begin{verbatim} +)set expose add constructor SquareMatrix +\end{verbatim} + +Define R to be the square matrix with integer entries: + +\spadcommand{R:=SQMATRIX(2,INT)} +$$ +SquareMatrix(2,Integer) +$$ + +\spadcommand{y:R:=matrix [ [1,1],[0,1] ]} +$$ +\left[ +\begin{array}{cc} +1 & 1 \\ +0 & 1 +\end{array} +\right] +$$ + +Define the inner derivative $\delta$: + +\spadcommand{delta:R->R:=r+->y*r-r*y} + +Define S to be a skew polynomial determined by $\sigma = 1$ +and $\delta$ as an inner derivative: + +\spadcommand{S:=OREUP('x,R,1,delta)} + +\spadcommand{x:S:='x} +$$ +x +$$ + +\spadcommand{a:S:=matrix [[2,3],[1,1]]} +$$ +\left[ +\begin{array}{cc} +2 & 3 \\ +1 & 1 +\end{array} +\right] +$$ + +\spadcommand{x**2*a} +$$ +{{\left[ +\begin{array}{cc} +2 & 3 \\ +1 & 1 +\end{array} +\right]} +\ {x^2}}+{{\left[ +\begin{array}{cc} +2 & -2 \\ +0 & -2 +\end{array} +\right]} +\ x}+{\left[ +\begin{array}{cc} +0 & -2 \\ +0 & 0 +\end{array} +\right]} +$$ + + \section{UniversalSegment} \label{UniversalSegmentXmpPage} diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet index edfdf79..2972ab5 100644 --- a/books/bookvol10.3.pamphlet +++ b/books/bookvol10.3.pamphlet @@ -8219,83 +8219,32 @@ Automorphism(R:Ring): Join(Group, Eltable(R, R)) with )clear all --S 1 lm := [3,5,7,11] ---R ---R ---R (1) [3,5,7,11] ---R Type: List PositiveInteger --E 1 ---S 2 -modTree(12,lm) ---R ---R ---R (2) [0,2,5,1] ---R Type: List Integer ---E 2 - --S 3 t := balancedBinaryTree(#lm, 0) ---R ---R ---R (3) [[0,0,0],0,[0,0,0]] ---R Type: BalancedBinaryTree NonNegativeInteger --E 3 --S 4 setleaves!(t,lm) ---R ---R ---R (4) [[3,0,5],0,[7,0,11]] ---R Type: BalancedBinaryTree NonNegativeInteger --E 4 --S 5 mapUp!(t,_*) ---R ---R ---R (5) 1155 ---R Type: PositiveInteger --E 5 --S 6 t ---R ---R ---R (6) [[3,15,5],1155,[7,77,11]] ---R Type: BalancedBinaryTree NonNegativeInteger --E 6 --S 7 mapDown!(t,12,_rem) ---R ---R ---R (7) [[0,12,2],12,[5,12,1]] ---R Type: BalancedBinaryTree NonNegativeInteger --E 7 --S 8 leaves % ---R ---R ---R (8) [0,2,5,1] ---R Type: List NonNegativeInteger --E 8 ---S 9 -squares := [x**2 rem m for x in % for m in lm] ---R ---R ---R (9) [0,4,4,1] ---R Type: List NonNegativeInteger ---E 9 - ---S 10 -chineseRemainder(%,lm) ---R ---R ---R (10) 144 ---R Type: PositiveInteger ---E 10 )spool )lisp (bye) @ @@ -105537,6 +105486,683 @@ UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen):_ @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{domain OREUP UnivariateSkewPolynomial} +<>= +)sys rm -f UnivariateSkewPolynomial.output +)spool UnivariateSkewPolynomial.output +)set message test on +)set message auto off +)set message type off +)clear all + +--S 1 of 33 +F:=EXPR(FRAC(INT)) +--R +--R +--R (1) Expression Fraction Integer +--E 1 + +--S 2 of 33 +Dx:F->F:=f+->D(f,['x]) +--R +--R +--R (2) theMap(Closure) +--E 2 + +--S 3 of 33 +D0:=OREUP('d,F,1,Dx) +--R +--R +--R (3) +--I UnivariateSkewPolynomial(d,Expression Fraction Integer,R -> R,theMap LAMBDA-C +--I LOSURE(NIL,NIL,NIL,G9057 envArg,SPADCALL(G9057,coerceOrCroak(CONS(QUOTE List +--I Variable x,wrap LIST QUOTE x),QUOTE List Symbol,QUOTE *1;anonymousFunction;2; +--I frame0;internal),ELT(*1;anonymousFunction;2;frame0;internal;MV,0)))) +--E 3 + +--S 4 of 33 +u:D0:=(operator 'u)(x) +--R +--R +--R (4) u(x) +--E 4 + +--S 5 of 33 +d:D0:='d +--R +--R +--R (5) d +--E 5 + +--S 6 of 33 +a:D0:=u^3*d^3+u^2*d^2+u*d+1 +--R +--R +--R 3 3 2 2 +--R (6) u(x) d + u(x) d + u(x)d + 1 +--E 6 + +--S 7 of 33 +b:D0:=(u+1)*d^2+2*d +--R +--R +--R 2 +--R (7) (u(x) + 1)d + 2d +--E 7 + +--S 8 of 33 +r:=rightDivide(a,b) +--R +--R +--R (8) +--R 3 , 3 2 +--R 3 - u(x) u (x) - u(x) + u(x) +--R u(x) +--R [quotient= -------- d + ----------------------------, +--R u(x) + 1 2 +--R u(x) + 2u(x) + 1 +--R 3 , 3 +--R 2u(x) u (x) + 3u(x) + u(x) +--R +--R remainder= --------------------------- d + 1] +--R 2 +--R u(x) + 2u(x) + 1 +--E 8 + +--S 9 of 33 +r.quotient +--R +--R +--R 3 , 3 2 +--R 3 - u(x) u (x) - u(x) + u(x) +--R u(x) +--R (9) -------- d + ---------------------------- +--R u(x) + 1 2 +--R u(x) + 2u(x) + 1 +--E 9 + +--S 10 of 33 +r.remainder +--R +--R +--R 3 , 3 +--R 2u(x) u (x) + 3u(x) + u(x) +--R +--R (10) --------------------------- d + 1 +--R 2 +--R u(x) + 2u(x) + 1 +--E 10 + +)clear all + +--S 11 of 33 +R:=UP('t,INT) +--R +--R +--R (1) UnivariatePolynomial(t,Integer) +--E 11 + +--S 12 of 33 +W:=OREUP('x,R,1,D) +--R +--R +--R (2) +--R UnivariateSkewPolynomial(x,UnivariatePolynomial(t,Integer),R -> R,theMap(DIFR +--I ING-;D;2S;1,411)) +--E 12 + +--S 13 of 33 +t:W:='t +--R +--R +--R (3) t +--E 13 + +--S 14 of 33 +x:W:='x +--R +--R +--R (4) x +--E 14 + +--S 15 of 33 +a:W:=(t-1)*x^4+(t^3+3*t+1)*x^2+2*t*x+t^3 +--R +--R +--R 4 3 2 3 +--R (5) (t - 1)x + (t + 3t + 1)x + 2t x + t +--E 15 + +--S 16 of 33 +b:W:=(6*t^4+2*t^2)*x^3+3*t^2*x^2 +--R +--R +--R 4 2 3 2 2 +--R (6) (6t + 2t )x + 3t x +--E 16 + +--S 17 of 33 +a*b +--R +--R +--R (7) +--R 5 4 3 2 7 4 3 2 6 +--R (6t - 6t + 2t - 2t )x + (96t - 93t + 13t - 16t)x +--R + +--R 7 5 4 3 2 5 +--R (6t + 20t + 6t + 438t - 406t - 24)x +--R + +--R 6 5 4 3 2 4 +--R (48t + 15t + 152t + 61t + 603t - 532t - 36)x +--R + +--R 7 5 4 3 2 3 +--R (6t + 74t + 60t + 226t + 116t + 168t - 140)x +--R + +--R 5 3 2 2 +--R (3t + 6t + 12t + 18t + 6)x +--E 17 + +--S 18 of 33 +a^3 +--R +--R +--R (8) +--R 3 2 12 5 4 3 2 10 +--R (t - 3t + 3t - 1)x + (3t - 6t + 12t - 15t + 3t + 3)x +--R + +--R 3 2 9 7 6 5 4 3 2 8 +--R (6t - 12t + 6t)x + (3t - 3t + 21t - 18t + 24t - 9t - 15t - 3)x +--R + +--R 5 4 3 2 7 +--R (12t - 12t + 36t - 24t - 12t)x +--R + +--R 9 7 6 5 4 3 2 6 +--R (t + 15t - 3t + 45t + 6t + 36t + 15t + 9t + 1)x +--R + +--R 7 5 3 2 5 +--R (6t + 48t + 54t + 36t + 6t)x +--R + +--R 9 7 6 5 4 3 2 4 +--R (3t + 21t + 3t + 39t + 18t + 39t + 12t )x +--R + +--R 7 5 4 3 3 9 7 6 5 2 7 9 +--R (12t + 36t + 12t + 8t )x + (3t + 9t + 3t + 12t )x + 6t x + t +--E 18 + +)clear all + +--S 19 of 33 +S:EXPR(INT)->EXPR(INT):=e+->eval(e,[n],[n+1]) +--R +--R +--R (1) theMap(Closure) +--E 19 + +--S 20 of 33 +DF:EXPR(INT)->EXPR(INT):=e+->eval(e,[n],[n+1])-e +--R +--R +--R (2) theMap(Closure) +--E 20 + +--S 21 of 33 +D0:=OREUP('D,EXPR(INT),morphism S,DF) +--R +--R +--R (3) +--I UnivariateSkewPolynomial(D,Expression Integer,R -> R,theMap LAMBDA-CLOSURE(NI +--I L,NIL,NIL,G9384 envArg,SPADCALL(SPADCALL(G9384,coerceOrCroak(CONS(QUOTE List +--I Variable n,wrap LIST QUOTE n),QUOTE List Expression Integer,QUOTE *1;anonymou +--I sFunction;9;frame0;internal),coerceOrCroak(CONS(QUOTE List Polynomial Integer +--I ,wrap LIST SPADCALL(QUOTE 1(n,1 0),QUOTE 0,ELT(*1;anonymousFunction;9;frame0; +--I internal;MV,0))),QUOTE List Expression Integer,QUOTE *1;anonymousFunction;9;f +--I rame0;internal),ELT(*1;anonymousFunction;9;frame0;internal;MV,1)),G9384,ELT(* +--I 1;anonymousFunction;9;frame0;internal;MV,2)))) +--E 21 + +--S 22 of 33 +u:=(operator 'u)[n] +--R +--R +--R (4) u(n) +--E 22 + +--S 23 of 33 +L:D0:='D+u +--R +--R +--R (5) D + u(n) +--E 23 + +--S 24 of 33 +L^2 +--R +--R +--R 2 2 +--R (6) D + 2u(n)D + u(n) +--E 24 + +)clear all + +--S 25 of 33 +)set expose add constructor SquareMatrix +--R +--I SquareMatrix is now explicitly exposed in frame frame0 +--E 25 + +--S 26 of 33 +R:=SQMATRIX(2,INT) +--R +--R +--R (1) SquareMatrix(2,Integer) +--E 26 + +--S 27 of 33 +y:R:=matrix [[1,1],[0,1]] +--R +--R +--R +1 1+ +--R (2) | | +--R +0 1+ +--E 27 + +--S 28 of 33 +delta:R->R:=r+->y*r-r*y +--R +--R +--R (3) theMap(Closure) +--E 28 + +--S 29 of 33 +S:=OREUP('x,R,1,delta) +--R +--R +--R (4) +--I UnivariateSkewPolynomial(x,SquareMatrix(2,Integer),R -> R,theMap LAMBDA-CLOSU +--I RE(NIL,NIL,NIL,G9459 envArg,SPADCALL(SPADCALL(getValueFromEnvironment(QUOTE y +--I ,QUOTE SquareMatrix(2,Integer)),G9459,ELT(*1;anonymousFunction;13;frame0;inte +--I rnal;MV,0)),SPADCALL(G9459,getValueFromEnvironment(QUOTE y,QUOTE SquareMatrix +--I (2,Integer)),ELT(*1;anonymousFunction;13;frame0;internal;MV,0)),ELT(*1;anonym +--I ousFunction;13;frame0;internal;MV,1)))) +--E 29 + +--S 30 of 33 +x:S:='x +--R +--R +--R (5) x +--E 30 + +--S 31 of 33 +a:S:=matrix [[2,3],[1,1]] +--R +--R +--R +2 3+ +--R (6) | | +--R +1 1+ +--E 31 + +--S 32 of 33 +x^2*a +--R +--R +--R +2 3+ 2 +2 - 2+ +0 - 2+ +--R (7) | |x + | |x + | | +--R +1 1+ +0 - 2+ +0 0 + +--E 32 + +--S 33 of 33 +)show UnivariateSkewPolynomial +--R +--R UnivariateSkewPolynomial(x: Symbol,R: Ring,sigma: Automorphism R,delta: (R -> R)) is a domain constructor +--R Abbreviation for UnivariateSkewPolynomial is OREUP +--R This constructor is not exposed in this frame. +--R Issue )edit bookvol10.3.spad.pamphlet to see algebra source code for OREUP +--R +--R------------------------------- Operations -------------------------------- +--R ?*? : (R,%) -> % ?*? : (%,R) -> % +--R ?*? : (%,%) -> % ?*? : (Integer,%) -> % +--R ?*? : (PositiveInteger,%) -> % ?**? : (%,PositiveInteger) -> % +--R ?+? : (%,%) -> % ?-? : (%,%) -> % +--R -? : % -> % ?=? : (%,%) -> Boolean +--R 1 : () -> % 0 : () -> % +--R ?^? : (%,PositiveInteger) -> % apply : (%,R,R) -> R +--R coefficients : % -> List R coerce : Variable x -> % +--R coerce : R -> % coerce : Integer -> % +--R coerce : % -> OutputForm degree : % -> NonNegativeInteger +--R hash : % -> SingleInteger latex : % -> String +--R leadingCoefficient : % -> R one? : % -> Boolean +--R recip : % -> Union(%,"failed") reductum : % -> % +--R retract : % -> R sample : () -> % +--R zero? : % -> Boolean ?~=? : (%,%) -> Boolean +--R ?*? : (NonNegativeInteger,%) -> % +--R ?**? : (%,NonNegativeInteger) -> % +--R ?^? : (%,NonNegativeInteger) -> % +--R characteristic : () -> NonNegativeInteger +--R coefficient : (%,NonNegativeInteger) -> R +--R coerce : Fraction Integer -> % if R has RETRACT FRAC INT +--R content : % -> R if R has GCDDOM +--R exquo : (%,R) -> Union(%,"failed") if R has INTDOM +--R leftDivide : (%,%) -> Record(quotient: %,remainder: %) if R has FIELD +--R leftExactQuotient : (%,%) -> Union(%,"failed") if R has FIELD +--R leftExtendedGcd : (%,%) -> Record(coef1: %,coef2: %,generator: %) if R has FIELD +--R leftGcd : (%,%) -> % if R has FIELD +--R leftLcm : (%,%) -> % if R has FIELD +--R leftQuotient : (%,%) -> % if R has FIELD +--R leftRemainder : (%,%) -> % if R has FIELD +--R minimumDegree : % -> NonNegativeInteger +--R monicLeftDivide : (%,%) -> Record(quotient: %,remainder: %) if R has INTDOM +--R monicRightDivide : (%,%) -> Record(quotient: %,remainder: %) if R has INTDOM +--R monomial : (R,NonNegativeInteger) -> % +--R primitivePart : % -> % if R has GCDDOM +--R retract : % -> Fraction Integer if R has RETRACT FRAC INT +--R retract : % -> Integer if R has RETRACT INT +--R retractIfCan : % -> Union(R,"failed") +--R retractIfCan : % -> Union(Fraction Integer,"failed") if R has RETRACT FRAC INT +--R retractIfCan : % -> Union(Integer,"failed") if R has RETRACT INT +--R rightDivide : (%,%) -> Record(quotient: %,remainder: %) if R has FIELD +--R rightExactQuotient : (%,%) -> Union(%,"failed") if R has FIELD +--R rightExtendedGcd : (%,%) -> Record(coef1: %,coef2: %,generator: %) if R has FIELD +--R rightGcd : (%,%) -> % if R has FIELD +--R rightLcm : (%,%) -> % if R has FIELD +--R rightQuotient : (%,%) -> % if R has FIELD +--R rightRemainder : (%,%) -> % if R has FIELD +--R subtractIfCan : (%,%) -> Union(%,"failed") +--R +--E 33 +)set expose drop constructor SquareMatrix + +)spool +)lisp (bye) + +@ +<>= +==================================================================== +UnivariateSkewPolynomial examples +==================================================================== + +Skew or Ore polynomial rings provide a unified framework to +compute with differential and difference equations. + +In the following, let A be an integral domain, equipped with two +endomorphisms \sigma and \delta where: + + \sigma: A -> A is an injective ring endomorphism + \delta: A -> A, the pseudo-derivation with respect to \sigma, + is an additive endomorphism with + + \delta(ab) = \sigma(a)\delta(b) + \delta(a)b + + for all a,b in A + +Note that in the domains and categories below, these properties are +not checked. + +The skew polynomial ring [\Delta;\sigma,\delta] is the ring of +polynomials in \Delta with coefficients in A, with the usual addition, +while the product is given by + + \Delta a = \sigma(a)\Delta + \delta(a) for a in A + +The two most important examples of skew polynomial rings are: + + K(x)[D,1,\delta], where 1 is the identity on K and \delta is + the usual derviative, is the ring of differential + polynomials + + K [E,n,\mapsto n+1,0] is the ring of linear recurrence operators + n with polynomial coefficients + + +_____________________________________________________________________ + +For example, + +The UnivariateSkewPolynomialCategory (OREPCAT) provides a unified +framework for polynomial rings in a non-central indeterminate over +some coefficient ring R. The commutation relations between the +indeterminate x and the coefficient t is given by + + x r = \sigma(r) x + \delta(r) + +where \sigma is a ring endomorphism of R +and \delta is a \sigma-derivation of R +which is an additive map from R to R such that + + \delta(rs) = \sigma(r) \delta(s) + \delta(r) s + +In case \sigma is the identity map on R, a \sigma-derivation of R +is just called a derivation. Here are some examples + +We start with a linear ordinary differential operator. First, we +define the coefficient ring to be expressions in one variable x +with fractional coefficients: + + F:=EXPR(FRAC(INT)) + +Define Dx to be a derivative d/dx: + + Dx:F->F:=f+->D(f,['x]) + +Define a skew polynomial ring over F with identity endomorphism as +\sigma and derivation d/dx as \delta: + + D0:=OREUP('d,F,1,Dx) + + u:D0:=(operator 'u)(x) + + d:D0:='d + + a:D0:=u^3*d^3+u^2*d^2+u*d+1 + + 3 3 2 2 + u(x) d + u(x) d + u(x)d + 1 + + b:D0:=(u+1)*d^2+2*d + + 2 + (u(x) + 1)d + 2d + + r:=rightDivide(a,b) + + 3 , 3 2 + 3 - u(x) u (x) - u(x) + u(x) + u(x) + [quotient= -------- d + ----------------------------, + u(x) + 1 2 + u(x) + 2u(x) + 1 + 3 , 3 + 2u(x) u (x) + 3u(x) + u(x) + + remainder= --------------------------- d + 1] + 2 + u(x) + 2u(x) + 1 + + + r.quotient + + 3 , 3 2 + 3 - u(x) u (x) - u(x) + u(x) + u(x) + -------- d + ---------------------------- + u(x) + 1 2 + u(x) + 2u(x) + 1 + + + r.remainder + + 3 , 3 + 2u(x) u (x) + 3u(x) + u(x) + + --------------------------- d + 1 + 2 + u(x) + 2u(x) + 1 + + +_____________________________________________________________________ + + )clear all + +As a second example, we consider the so-called Weyl algebra. + +Define the coefficient ring to be an ordinary polynomial over integers +in one variable t + + R:=UP('t,INT) + +Define a skew polynomial ring over R with identity map as \sigma +and derivation d/dt as \delta. The resulting algebra is then called +a Weyl algebra. This is a simple ring over a division ring that is +non-commutative, similar to the ring of matrices. + + W:=OREUP('x,R,1,D) + + t:W:='t + + x:W:='x + +Let + + a:W:=(t-1)*x^4+(t^3+3*t+1)*x^2+2*t*x+t^3 + + 4 3 2 3 + (t - 1)x + (t + 3t + 1)x + 2t x + t + + b:W:=(6*t^4+2*t^2)*x^3+3*t^2*x^2 + + 4 2 3 2 2 + (6t + 2t )x + 3t x + +Then + + a*b + 5 4 3 2 7 4 3 2 6 + (6t - 6t + 2t - 2t )x + (96t - 93t + 13t - 16t)x + + + 7 5 4 3 2 5 + (6t + 20t + 6t + 438t - 406t - 24)x + + + 6 5 4 3 2 4 + (48t + 15t + 152t + 61t + 603t - 532t - 36)x + + + 7 5 4 3 2 3 + (6t + 74t + 60t + 226t + 116t + 168t - 140)x + + + 5 3 2 2 + (3t + 6t + 12t + 18t + 6)x + + a^3 + 3 2 12 5 4 3 2 10 + (t - 3t + 3t - 1)x + (3t - 6t + 12t - 15t + 3t + 3)x + + + 3 2 9 7 6 5 4 3 2 8 + (6t - 12t + 6t)x + (3t - 3t + 21t - 18t + 24t - 9t - 15t - 3)x + + + 5 4 3 2 7 + (12t - 12t + 36t - 24t - 12t)x + + + 9 7 6 5 4 3 2 6 + (t + 15t - 3t + 45t + 6t + 36t + 15t + 9t + 1)x + + + 7 5 3 2 5 + (6t + 48t + 54t + 36t + 6t)x + + + 9 7 6 5 4 3 2 4 + (3t + 21t + 3t + 39t + 18t + 39t + 12t )x + + + 7 5 4 3 3 9 7 6 5 2 7 9 + (12t + 36t + 12t + 8t )x + (3t + 9t + 3t + 12t )x + 6t x + t + + +_____________________________________________________________________ + + )clear all + +As a third example, we construct a difference operator algebra over +the ring of EXPR(INT) by using an automorphism S defined by a +"shift" operation S:EXPR(INT) -> EXPR(INT) + + s(e)(n) = e(n+1) + +and an S-derivation defined by DF:EXPR(INT) -> EXPR(INT) as + + DF(e)(n) = e(n+1)-e(n) + +Define S to be a "shift" operator, which acts on expressions with +the discrete variable n: + + S:EXPR(INT)->EXPR(INT):=e+->eval(e,[n],[n+1]) + +Define DF to be a "difference" operator, which acts on expressions +with a discrete variable n: + + DF:EXPR(INT)->EXPR(INT):=e+->eval(e,[n],[n+1])-e + +Then define the difference operator algebra D0: + + D0:=OREUP('D,EXPR(INT),morphism S,DF) + + u:=(operator 'u)[n] + + L:D0:='D+u + + D + u(n) + + L^2 + + 2 2 + D + 2u(n)D + u(n) + +_____________________________________________________________________ + + )clear all + +As a fourth example, we construct a skew polynomial ring by using an +inner derivation \delta induced by a fixed y in R: + + \delta(r) = yr - ry + +First we should expose the constructor SquareMatrix so it is visible +in the interpreter: + + )set expose add constructor SquareMatrix + +Define R to be the square matrix with integer entries: + + R:=SQMATRIX(2,INT) + + y:R:=matrix [[1,1],[0,1]] + +1 1+ + | | + +0 1+ + +Define the inner derivative \delta: + + delta:R->R:=r+->y*r-r*y + +Define S to be a skew polynomial determined by \sigma = 1 +and \delta as an inner derivative: + + S:=OREUP('x,R,1,delta) + + x:S:='x + + a:S:=matrix [[2,3],[1,1]] + +2 3+ + | | + +1 1+ + + x^2*a + +2 3+ 2 +2 - 2+ +0 - 2+ + | |x + | |x + | | + +1 1+ +0 - 2+ +0 0 + + + +See Also: +o )show UnivariateSkewPolynomial +o )show UnivariateSkewPolynomialCategory +o )show SquareMatrix + +@ \pagehead{UnivariateSkewPolynomial}{OREUP} \pagepic{ps/v103univariateskewpolynomial.ps}{OREUP}{1.00} {\bf See}\\ @@ -105604,7 +106230,7 @@ UnivariatePuiseuxSeriesWithExponentialSingularity(R,FE,var,cen):_ ++ 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}. -UnivariateSkewPolynomial(x:Symbol, R:Ring, sigma:Automorphism R, delta: R -> R): +UnivariateSkewPolynomial(x:Symbol,R:Ring,sigma:Automorphism R,delta: R -> R): UnivariateSkewPolynomialCategory R with coerce: Variable x -> % ++ coerce(x) returns x as a skew-polynomial. diff --git a/books/bookvol7.1.pamphlet b/books/bookvol7.1.pamphlet index e82869c..997c780 100644 --- a/books/bookvol7.1.pamphlet +++ b/books/bookvol7.1.pamphlet @@ -48292,6 +48292,10 @@ Multiple variable polynomials, recursive structure. {DistributedMultivariatePolyXmpPage} \newline Multiple variable polynomials, non-recursive structure. +\menulink{UnivariateSkewPolynomial} +{UnivariateSkewPolynomial} +\newline +Skew or Ore polynomials \endmenu \endscroll \autobuttons @@ -60140,6 +60144,315 @@ Type: UnivariatePolynomial(b1,Fraction Polynomial Integer) \end{paste}\end{patch} @ +\section{oreup.ht} +\pagehead{UnivariateSkewPolyXmpPage}{up.ht}{UnivariateSkewPolynomial} +<>= +\begin{page}{UnivariateSkewPolyXmpPage}{UnivariateSkewPolynomial} +\beginscroll + +Skew or Ore polynomial rings provide a unified framework to +compute with differential and difference equations. +\newline +In the following, let A be an integral domain, equipped with two +endomorphisms \sigma and \delta where: +\blankline +\begin{items} +\item \sigma: A -> A is an injective ring endomorphism +\item \delta: A -> A, the pseudo-derivation with respect to +\sigma, is an additive endomorphism with +\blankline +\delta(ab) = \sigma(a)\delta(b) + \delta(a)b +\blankline +for all a,b in A +\end{items} +\blankline +The skew polynomial ring +[\Delta;\sigma,\delta] is the ring of +polynomials in \delta with coefficients in A, with the +usual addition, while the product is given by +\blankline +\delta a = \sigma(a)\delta + \delta(a) for a in A +\blankline +The two most important examples of skew polynomial rings are: +\blankline +K(x)[D,1,\delta] +\blankline +where 1 is the identity on K and \texht{$\delta$}{delta} is +the usual derviative, is the ring of differential polynomials +\blankline + \subscriptIt{K}{n} [E,n,n->n+1,0] +\blankline +is the ring of linear recurrence operators with polynomial coefficients + +\horizontalline +The UnivariateSkewPolynomialCategory (OREPCAT) provides a unified +framework for polynomial rings in a non-central indeterminate over +some coefficient ring R. The commutation relations between the +indeterminate x and the coefficient t is given by +\blankline + x r = \sigma(r) x + \delta(r) +\blankline +where \sigma is a ring endomorphism of R +and \delta is a \sigma-derivation of R +which is an additive map from R to R such that +\blankline + \delta(rs) = \sigma(r) \delta(s) + \delta(r) s +\blankline +In case \sigma is the identity map on R, a \sigma-derivation of R +is just called a derivation. +\blankline +We start with a linear ordinary differential operator. First, we +define the coefficient ring to be expressions in one variable x +with fractional coefficients: +\blankline + F := EXPR(FRAC(INT)) +\blankline +Define Dx to be a derivative d/dx: +\blankline + Dx: F->F := f+->D(f,['x]) +\blankline +Define a skew polynomial ring over F with identity endomorphism as +\sigma and derivation d/dx as \delta: +\begin{verbatim} + D0 := OREUP('d,F,1,Dx) +\end{verbatim} +\begin{verbatim} + u:D0 := (operator 'u)(x) +\end{verbatim} +\begin{verbatim} + d:D0 := 'd +\end{verbatim} +\begin{verbatim} + a:D0:=u^3*d^3+u^2*d^2+u*d+1 + + 3 3 2 2 + u(x) d + u(x) d + u(x)d + 1 +\end{verbatim} +\begin{verbatim} + b:D0:=(u+1)*d^2+2*d + + 2 + (u(x) + 1)d + 2d +\end{verbatim} +\begin{verbatim} + r:=rightDivide(a,b) + + 3 , 3 2 + 3 - u(x) u (x) - u(x) + u(x) + u(x) + [quotient= -------- d + ----------------------------, + u(x) + 1 2 + u(x) + 2u(x) + 1 + 3 , 3 + 2u(x) u (x) + 3u(x) + u(x) + + remainder= --------------------------- d + 1] + 2 + u(x) + 2u(x) + 1 + +\end{verbatim} +\begin{verbatim} + r.quotient + + 3 , 3 2 + 3 - u(x) u (x) - u(x) + u(x) + u(x) + -------- d + ---------------------------- + u(x) + 1 2 + u(x) + 2u(x) + 1 + +\end{verbatim} +\begin{verbatim} + r.remainder + + 3 , 3 + 2u(x) u (x) + 3u(x) + u(x) + + --------------------------- d + 1 + 2 + u(x) + 2u(x) + 1 +\end{verbatim} + +\horizontalline + + )clear all +\blankline +As a second example, we consider the so-called Weyl algebra. +\blankline +Define the coefficient ring to be an ordinary polynomial over integers +in one variable t +\blankline +\begin{verbatim} + R := UP('t,INT) +\end{verbatim} +\blankline +Define a skew polynomial ring over R with identity map as +\sigma +and derivation d/dt as \delta. +The resulting algebra is then called a Weyl algebra: +\blankline +\begin{verbatim} + W := OREUP('x,R,1,D) + + t:W := 't + + x:W := 'x +\end{verbatim} +\blankline +Let +\begin{verbatim} + a:W:=(t-1)*x^4+(t^3+3*t+1)*x^2+2*t*x+t^3 + + 4 3 2 3 + (t - 1)x + (t + 3t + 1)x + 2t x + t +\end{verbatim} +\begin{verbatim} + b:W:=(6*t^4+2*t^2)*x^3+3*t^2*x^2 + + 4 2 3 2 2 + (6t + 2t )x + 3t x +\end{verbatim} +\blankline +Then +\begin{verbatim} + a*b + 5 4 3 2 7 4 3 2 6 + (6t - 6t + 2t - 2t )x + (96t - 93t + 13t - 16t)x + + + 7 5 4 3 2 5 + (6t + 20t + 6t + 438t - 406t - 24)x + + + 6 5 4 3 2 4 + (48t + 15t + 152t + 61t + 603t - 532t - 36)x + + + 7 5 4 3 2 3 + (6t + 74t + 60t + 226t + 116t + 168t - 140)x + + + 5 3 2 2 + (3t + 6t + 12t + 18t + 6)x + + a^3 + 3 2 12 5 4 3 2 10 + (t - 3t + 3t - 1)x + (3t - 6t + 12t - 15t + 3t + 3)x + + + 3 2 9 7 6 5 4 3 2 8 + (6t - 12t + 6t)x + (3t - 3t + 21t - 18t + 24t - 9t - 15t - 3)x + + + 5 4 3 2 7 + (12t - 12t + 36t - 24t - 12t)x + + + 9 7 6 5 4 3 2 6 + (t + 15t - 3t + 45t + 6t + 36t + 15t + 9t + 1)x + + + 7 5 3 2 5 + (6t + 48t + 54t + 36t + 6t)x + + + 9 7 6 5 4 3 2 4 + (3t + 21t + 3t + 39t + 18t + 39t + 12t )x + + + 7 5 4 3 3 9 7 6 5 2 7 9 + (12t + 36t + 12t + 8t )x + (3t + 9t + 3t + 12t )x + 6t x + t +\end{verbatim} + +\horizontalline + )clear all +\blankline +As a third example, we construct a difference operator algebra over +the ring of EXPR(INT) by using an automorphism S defined by a +"shift" operation S:EXPR(INT) -> EXPR(INT) +\blankline +\begin{verbatim} + s(e)(n) = e(n+1) +\end{verbatim} +\blankline +and an S-derivation defined by DF:EXPR(INT) -> EXPR(INT) as +\blankline +\begin{verbatim} + DF(e)(n) = e(n+1)-e(n) +\end{verbatim} +\blankline +Define S to be a "shift" operator, which acts on expressions with +the discrete variable n: +\blankline +\begin{verbatim} + S:EXPR(INT)->EXPR(INT):=e+->eval(e,[n],[n+1]) +\end{verbatim} +\blankline +Define DF to be a "difference" operator, which acts on expressions +with a discrete variable n: +\blankline +\begin{verbatim} + DF:EXPR(INT)->EXPR(INT):=e+->eval(e,[n],[n+1])-e +\end{verbatim} +\blankline +Then define the difference operator algebra D0: +\blankline +\begin{verbatim} + D0:=OREUP('D,EXPR(INT),morphism S,DF) + + u:=(operator 'u)[n] + + L:D0:='D+u + + D + u(n) + + L^2 + + 2 2 + D + 2u(n)D + u(n) +\end{verbatim} + +\horizontalline + )clear all +\blankline +As a fourth example, we construct a skew polynomial ring by using an +inner derivation \delta induced by a fixed y in R: +\blankline + \delta(r) = yr - ry +\blankline +First we should expose the constructor SquareMatrix so it is visible +in the interpreter: +\blankline + )set expose add constructor SquareMatrix +\blankline +Define R to be the square matrix with integer entries: +\blankline +\begin{verbatim} + R:=SQMATRIX(2,INT) + + y:R:=matrix [[1,1],[0,1]] + +1 1+ + | | + +0 1+ +\end{verbatim} +\blankline +Define the inner derivative \delta: +\blankline + delta:R->R:=r+->y*r-r*y +\blankline +Define S to be a skew polynomial determined by \sigma = 1 +and \delta as an inner derivative: +\blankline +\begin{verbatim} + S:=OREUP('x,R,1,delta) + + x:S:='x + + a:S:=matrix [[2,3],[1,1]] + +2 3+ + | | + +1 1+ + + x^2*a + +2 3+ 2 +2 - 2+ +0 - 2+ + | |x + | |x + | | + +1 1+ +0 - 2+ +0 0 + +\end{verbatim} +\endscroll +\autobuttons +\end{page} + +@ \section{vector.ht} \pagehead{VectorXmpPage}{vector.ht}{Vector} \pageto{notitle}{OneDimensionalArrayXmpPage} @@ -61071,6 +61384,7 @@ Type: List WuWenTsunTriangularSet(Integer,IndexedExponents OrderedVariableList [ \pageto{TextFile}{TextFileXmpPage} \pageto{TwoDimensionalArray}{TwoDimensionalArrayXmpPage} \pageto{UnivariatePolynomial}{UnivariatePolyXmpPage} +\pageto{UnivariateSkewPolynomial}{UnivariateSkewPolyXmpPage} \pageto{UniversalSegment}{UniversalSegmentXmpPage} \pageto{Vector}{VectorXmpPage} \pageto{Void}{VoidXmpPage} @@ -61177,6 +61491,7 @@ Click on any item below to see that section. { \downlink{TextFile}{TextFileXmpPage} } { \downlink{TwoDimensionalArray}{TwoDimensionalArrayXmpPage} } { \downlink{UnivariatePolynomial}{UnivariatePolyXmpPage} } +{ \downlink{UnivariateSkewPolynomial}{UnivariateSkewPolyXmpPage} } { \downlink{UniversalSegment}{UniversalSegmentXmpPage} } { \downlink{Vector}{VectorXmpPage} } { \downlink{Void}{VoidXmpPage} } @@ -187623,6 +187938,7 @@ RootPage PolynomialXmpPage MultivariatePolyXmpPage DistributedMultivariatePolyXmpPage + UnivariateSkewPolynomialPage UniversalSegmentXmpPage SegmentXmpPage SegmentBindingXmpPage diff --git a/changelog b/changelog index eec4e31..cdca04a 100644 --- a/changelog +++ b/changelog @@ -1,4 +1,9 @@ -20090226 tpd src/axiom-website/patches.html 20090225.02.mxr.patch +20090227 tpd src/axiom-website/patches.html 20090227.01.lxx.patch +20090227 lxx src/algebra/Makefile document UnivariateSkewPolynomial +20090227 tpd books/bookvol0 add UnivariateSkewPolynomial +20090227 lxx books/bookvol10.3 document UnivariateSkewPolynomial +20090227 lxx books/bookvol7.1 document UnivariateSkewPolynomial +20090226 tpd src/axiom-website/patches.html 20090226.01.mxr.patch 20090226 tpd src/input/bags.input removed. distributed into bookvol10.3 20090226 tpd src/input/Makefile remove bags.input 20090225 tpd src/axiom-website/patches.html 20090225.02.mxr.patch diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index 2c80c0c..bd760c9 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -16488,6 +16488,7 @@ SPADHELP=\ ${HELP}/StringTable.help ${HELP}/Symbol.help \ ${HELP}/Table.help ${HELP}/TextFile.help \ ${HELP}/TwoDimensionalArray.help ${HELP}/TwoDimensionalViewport.help \ + ${HELP}/UnivariateSkewPolynomial.help \ ${HELP}/UnivariatePolynomial.help ${HELP}/UniversalSegment.help \ ${HELP}/Vector.help ${HELP}/Void.help \ ${HELP}/WuWenTsunTriangularSet.help ${HELP}/XPBWPolynomial.help \ @@ -16557,7 +16558,7 @@ REGRESS=\ Stream.regress String.regress \ StringTable.regress Symbol.regress \ Table.regress TextFile.regress \ - TwoDimensionalArray.regress \ + TwoDimensionalArray.regress UnivariateSkewPolynomial.regress \ UnivariatePolynomial.regress UniversalSegment.regress \ Vector.regress Void.regress \ WuWenTsunTriangularSet.regress XPBWPolynomial.regress \ @@ -17569,6 +17570,18 @@ ${HELP}/UnivariatePolynomial.help: ${BOOKS}/bookvol10.3.pamphlet >${INPUT}/UnivariatePolynomial.input @echo "UnivariatePolynomial (UP)" >>${HELPFILE} +${HELP}/UnivariateSkewPolynomial.help: ${BOOKS}/bookvol10.3.pamphlet + @echo 7095 create UnivariateSkewPolynomial.help from \ + ${BOOKS}/bookvol10.3.pamphlet + @${TANGLE} -R"UnivariateSkewPolynomial.help" \ + ${BOOKS}/bookvol10.3.pamphlet \ + >${HELP}/UnivariateSkewPolynomial.help + @cp ${HELP}/UnivariateSkewPolynomial.help ${HELP}/OREUP.help + @${TANGLE} -R"UnivariateSkewPolynomial.input" \ + ${BOOKS}/bookvol10.3.pamphlet \ + >${INPUT}/UnivariateSkewPolynomial.input + @echo "UnivariateSkewPolynomial (OREUP)" >>${HELPFILE} + ${HELP}/UniversalSegment.help: ${BOOKS}/bookvol10.3.pamphlet @echo 7096 create UniversalSegment.help from \ ${BOOKS}/bookvol10.3.pamphlet diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 9f1bebb..ef940f5 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -971,5 +971,7 @@ bookvol10.3 add regression, help, examples for Heap
bookvol10.3 add regression, help, examples for NottinghamGroup
20090226.01.mxr.patch input/Makefile remove bags.input
+20090227.01.lxx.patch +bookvol10.3 document UnivariateSkewPolynomial
diff --git a/src/input/bags.input.pamphlet b/src/input/bags.input.pamphlet deleted file mode 100644 index f253093..0000000 --- a/src/input/bags.input.pamphlet +++ /dev/null @@ -1,383 +0,0 @@ -\documentclass{article} -\usepackage{axiom} -\begin{document} -\title{\$SPAD/src/input bags.input} -\author{Timothy Daly} -\maketitle -\begin{abstract} -\end{abstract} -\eject -\tableofcontents -\eject -\section{License} -<>= ---Copyright The Numerical Algorithms Group Limited 1991. -@ -<<*>>= -)spool bags.output -)set message test on -)set message auto off -)clear all - ---S 1 of 44 -a:Stack INT:= stack [1,2,3,4,5] ---R ---R ---R (1) [1,2,3,4,5] ---R Type: Stack Integer ---E 1 - ---S 2 of 44 -pop! a ---R ---R ---R (2) 1 ---R Type: PositiveInteger ---E 2 - ---S 3 of 44 -a ---R ---R ---R (3) [2,3,4,5] ---R Type: Stack Integer ---E 3 - ---S 4 of 44 -push!(9,a) ---R ---R ---R (4) 9 ---R Type: PositiveInteger ---E 4 - ---S 5 of 44 -a ---R ---R ---R (5) [9,2,3,4,5] ---R Type: Stack Integer ---E 5 - ---S 6 of 44 -empty? a ---R ---R ---R (6) false ---R Type: Boolean ---E 6 - ---S 7 of 44 -b:=empty()$(Stack INT) ---R ---R ---R (7) [] ---R Type: Stack Integer ---E 7 - ---S 8 of 44 -empty? b ---R ---R ---R (8) true ---R Type: Boolean ---E 8 - ---S 9 of 44 -c:ArrayStack INT:= arrayStack [1,2,3,4,5] ---R ---R ---R (9) [1,2,3,4,5] ---R Type: ArrayStack Integer ---E 9 - ---S 10 of 44 -pop! c ---R ---R ---R (10) 5 ---R Type: PositiveInteger ---E 10 - ---S 11 of 44 -c ---R ---R ---R (11) [1,2,3,4] ---R Type: ArrayStack Integer ---E 11 - ---S 12 of 44 -push!(9,c) ---R ---R ---R (12) 9 ---R Type: PositiveInteger ---E 12 - ---S 13 of 44 -c ---R ---R ---R (13) [9,1,2,3,4] ---R Type: ArrayStack Integer ---E 13 - ---S 14 of 44 -empty? c ---R ---R ---R (14) false ---R Type: Boolean ---E 14 - ---S 15 of 44 -d:=empty()$(ArrayStack INT) ---R ---R ---R (15) [] ---R Type: ArrayStack Integer ---E 15 - ---S 16 of 44 -empty? d ---R ---R ---R (16) true ---R Type: Boolean ---E 16 - ---S 17 of 44 -e:Queue INT:= queue [1,2,3,4,5] ---R ---R ---R (17) [1,2,3,4,5] ---R Type: Queue Integer ---E 17 - ---S 18 of 44 -dequeue! e ---R ---R ---R (18) 1 ---R Type: PositiveInteger ---E 18 - ---S 19 of 44 -e ---R ---R ---R (19) [2,3,4,5] ---R Type: Queue Integer ---E 19 - ---S 20 of 44 -enqueue!(9,e) ---R ---R ---R (20) 9 ---R Type: PositiveInteger ---E 20 - ---S 21 of 44 -e ---R ---R ---R (21) [2,3,4,5,9] ---R Type: Queue Integer ---E 21 - ---S 22 of 44 -empty? e ---R ---R ---R (22) false ---R Type: Boolean ---E 22 - ---S 23 of 44 -f:=empty()$(Queue INT) ---R ---R ---R (23) [] ---R Type: Queue Integer ---E 23 - ---S 24 of 44 -empty? f ---R ---R ---R (24) true ---R Type: Boolean ---E 24 - ---S 25 of 44 -g:Dequeue INT:= dequeue [1,2,3,4,5] ---R ---R ---R (25) [1,2,3,4,5] ---R Type: Dequeue Integer ---E 25 - ---S 26 of 44 -extractBottom! g ---R ---R ---R (26) 5 ---R Type: PositiveInteger ---E 26 - ---S 27 of 44 -g ---R ---R ---R (27) [1,2,3,4] ---R Type: Dequeue Integer ---E 27 - ---S 28 of 44 -insertBottom!(9,g) ---R ---R ---R (28) 9 ---R Type: PositiveInteger ---E 28 - ---S 29 of 44 -g ---R ---R ---R (29) [1,2,3,4,9] ---R Type: Dequeue Integer ---E 29 - ---S 30 of 44 -extractTop! g ---R ---R ---R (30) 1 ---R Type: PositiveInteger ---E 30 - ---S 31 of 44 -g ---R ---R ---R (31) [2,3,4,9] ---R Type: Dequeue Integer ---E 31 - ---S 32 of 44 -insertTop!(9,g) ---R ---R ---R (32) 9 ---R Type: PositiveInteger ---E 32 - ---S 33 of 44 -g ---R ---R ---R (33) [9,2,3,4,9] ---R Type: Dequeue Integer ---E 33 - ---S 34 of 44 -empty? g ---R ---R ---R (34) false ---R Type: Boolean ---E 34 - ---S 35 of 44 -h:=empty()$(Dequeue INT) ---R ---R ---R (35) [] ---R Type: Dequeue Integer ---E 35 - ---S 36 of 44 -empty? h ---R ---R ---R (36) true ---R Type: Boolean ---E 36 - ---S 37 of 44 -i:Heap INT := bag [1,6,3,7,5,2,4] ---R ---R ---R (37) [7,6,4,1,5,2,3] ---R Type: Heap Integer ---E 37 - ---S 38 of 44 -insert!(10,i) ---R ---R ---R (38) [10,7,4,6,5,2,3,1] ---R Type: Heap Integer ---E 38 - ---S 39 of 44 -i ---R ---R ---R (39) [10,7,4,6,5,2,3,1] ---R Type: Heap Integer ---E 39 - ---S 40 of 44 -max i ---R ---R ---R (40) 10 ---R Type: PositiveInteger ---E 40 - ---S 41 of 44 -extract! i ---R ---R ---R (41) 10 ---R Type: PositiveInteger ---E 41 - ---S 42 of 44 -i ---R ---R ---R (42) [7,6,4,1,5,2,3] ---R Type: Heap Integer ---E 42 - ---S 43 of 44 -heapsort x == - empty? x => [] - cons(extract! x,heapsort x) ---R ---R Type: Void ---E 43 - ---S 44 of 44 -heapsort i ---R ---R Compiling function heapsort with type Heap Integer -> List Integer ---R ---R (44) [7,6,5,4,3,2,1] ---R Type: List Integer ---E 44 -)spool -)lisp (bye) - -@ -\eject -\begin{thebibliography}{99} -\bibitem{1} nothing -\end{thebibliography} -\end{document} -