| Bill Allombert on Fri, 30 Jan 2004 19:38:38 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: Preparing PARI 2.3 |
On Wed, Jan 28, 2004 at 02:06:35AM +0100, Bill Allombert wrote: > --- Add substpol() and reinstate old subst behaviour. Here a patch that do just that. Cheers, Bill.
Index: doc/usersch3.tex
===================================================================
RCS file: /home/cvs/pari/doc/usersch3.tex,v
retrieving revision 1.295
diff -u -r1.295 usersch3.tex
--- doc/usersch3.tex 28 Jan 2004 17:11:00 -0000 1.295
+++ doc/usersch3.tex 30 Jan 2004 18:05:34 -0000
@@ -5822,8 +5822,15 @@
\noindent If $x$ is a power series, $z$ must be either a polynomial, a power
series, or a rational function.
-The ``variable'' $y$ is in fact allowed to be any polynomial, in which case,
-the substitution is done as per the following script:
+\syn{gsubst}{x,y,z}, where $y$ is the variable number.
+
+\subsecidx{substpol}$(x,y,z)$:
+replace the ``variable'' $y$ by the argument $z$ in the ``polynomial''
+expression $x$. Every type is allowed for $x$, but the same behavior
+as \kbd{subst} above apply.
+
+The difference with \kbd{subst} is that $y$ is allowed to be any polynomial
+here. The substitution is done as per the following script:
\bprog
subst_poly(pol, from, to) =
{ local(t = 'subst_poly_t, M = from - t);
@@ -5833,17 +5840,15 @@
@eprog
\noindent For instance
\bprog
-? subst(x^4 + x^2 + 1, x^2, y)
+? substpol(x^4 + x^2 + 1, x^2, y)
%1 = y^2 + y + 1
-? subst(x^4 + x^2 + 1, x^3, y)
+? substpol(x^4 + x^2 + 1, x^3, y)
%2 = x^2 + y*x + 1
-? subst(x^4 + x^2 + 1, (x+1)^2, y)
+? substpol(x^4 + x^2 + 1, (x+1)^2, y)
%3 = (-4*y - 6)*x + (y^2 + 3*y - 3)
@eprog
-\syn{gsubst}{x,v,z}, where $v$ is the number of the variable $y$ for regular
-usage. Also available is \tet{gsubst0}$(x,y,z)$ where $y$ is a \kbd{GEN}
-polynomial.
+\syn{gsubstpol}$(x,y,z)$.
\subsecidx{taylor}$(x,y)$: Taylor expansion around $0$ of $x$ with respect
to\label{se:taylor}
Index: src/basemath/gen3.c
===================================================================
RCS file: /home/cvs/pari/src/basemath/gen3.c,v
retrieving revision 1.116
diff -u -r1.116 gen3.c
--- src/basemath/gen3.c 28 Jan 2004 12:16:07 -0000 1.116
+++ src/basemath/gen3.c 30 Jan 2004 18:05:39 -0000
@@ -1358,7 +1358,7 @@
}
GEN
-gsubst0(GEN x, GEN T, GEN y)
+gsubstpol(GEN x, GEN T, GEN y)
{
pari_sp av;
long d, v;
Index: src/functions/polynomials/subst
===================================================================
RCS file: /home/cvs/pari/src/functions/polynomials/subst,v
retrieving revision 1.1
diff -u -r1.1 subst
--- src/functions/polynomials/subst 26 Jun 2003 18:50:22 -0000 1.1
+++ src/functions/polynomials/subst 30 Jan 2004 18:05:41 -0000
@@ -1,7 +1,7 @@
Function: subst
Section: polynomials
-C-Name: gsubst0
-Prototype: GGG
+C-Name: gsubst
+Prototype: GnG
Help: subst(x,y,z): in expression x, replace the variable y by the
expression z
Index: src/headers/paridecl.h
===================================================================
RCS file: /home/cvs/pari/src/headers/paridecl.h,v
retrieving revision 1.306
diff -u -r1.306 paridecl.h
--- src/headers/paridecl.h 29 Jan 2004 16:36:05 -0000 1.306
+++ src/headers/paridecl.h 30 Jan 2004 18:05:45 -0000
@@ -1000,7 +1000,7 @@
GEN gshift(GEN x, long n);
GEN gshift3(GEN x, long n, long flag);
GEN gsubst(GEN x, long v, GEN y);
-GEN gsubst0(GEN x, GEN v, GEN y);
+GEN gsubstpol(GEN x, GEN v, GEN y);
GEN gsubst_expr(GEN pol, GEN from, GEN to);
GEN gtopoly(GEN x, long v);
GEN gtopolyrev(GEN x, long v);
--- /dev/null Sat Mar 1 19:52:54 2003
+++ src/functions/polynomials/substpol Fri Jan 30 18:54:34 2004
@@ -0,0 +1,7 @@
+Function: substpol
+Section: polynomials
+C-Name: gsubstpol
+Prototype: GGG
+Help: substpol(x,y,z): in expression x, replace the polynomial y by the
+ expression z, using remainder decomposition of x.
+