
<a name=r38_0500>

<title>ChebyshevT</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>CHEBYSHEVT</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
The <em>ChebyshevT</em> operator computes the nth Chebyshev T Polynomial (of the
 
first kind). 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>ChebyshevT</em>(&lt;integer&gt;,&lt;expression&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
ChebyshevT(3,xx); 

          2
  xx*(4*xx   - 3) 



ChebyshevT(3,4); 

  244

</tt></pre><p>Chebyshev's T polynomials are computed using the recurrence relati
on: 
<P>
<P>
ChebyshevT(n,x) := 2x*ChebyshevT(n-1,x) - ChebyshevT(n-2,x) with 
<P>
<P>
ChebyshevT(0,x) := 0 and ChebyshevT(1,x) := x 
<P>
<P>
<P>

<a name=r38_0501>

<title>ChebyshevU</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>CHEBYSHEVU</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
The <em>ChebyshevU</em> operator returns the nth Chebyshev U Polynomial (of the 

second kind). 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>ChebyshevU</em>(&lt;integer&gt;,&lt;expression&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
ChebyshevU(3,xx); 

          2
  4*x*(2*x   - 1) 



ChebyshevU(3,4); 

  496

</tt></pre><p>Chebyshev's U polynomials are computed using the recurrence relati
on: 
<P>
<P>
ChebyshevU(n,x) := 2x*ChebyshevU(n-1,x) - ChebyshevU(n-2,x) with 
<P>
<P>
ChebyshevU(0,x) := 0 and ChebyshevU(1,x) := 2x 
<P>
<P>
<P>
<P>

<a name=r38_0502>

<title>HermiteP</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>HERMITEP</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
The <em>HermiteP</em> operator returns the nth Hermite Polynomial. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>HermiteP</em>(&lt;integer&gt;,&lt;expression&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
HermiteP(3,xx); 

            2
  4*xx*(2*xx   - 3) 


HermiteP(3,4); 

  464

</tt></pre><p>Hermite polynomials are computed using the recurrence relation: 
 <P>
<P>
HermiteP(n,x) := 2x*HermiteP(n-1,x) - 2*(n-1)*HermiteP(n-2,x) with 
<P>
<P>
HermiteP(0,x) := 1 and HermiteP(1,x) := 2x 
<P>
<P>
<P>
<P>

<a name=r38_0503>

<title>LaguerreP</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>LAGUERREP</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
The <em>LaguerreP</em> operator computes the nth Laguerre Polynomial. 
The two argument call of LaguerreP is a (common) abbreviation of 
LaguerreP(n,0,x). 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>LaguerreP</em>(&lt;integer&gt;,&lt;expression&gt;) or 
<P>
<P>
<em>LaguerreP</em>(&lt;integer&gt;,&lt;expression&gt;,&lt;expression&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
LaguerreP(3,xx); 

       3        2
  (- xx   + 9*xx   - 18*xx + 6)/6



LaguerreP(2,3,4); 

  -2

</tt></pre><p>Laguerre polynomials are computed using the recurrence relation: 
<P>
<P>
LaguerreP(n,a,x) := (2n+a-1-x)/n*LaguerreP(n-1,a,x) - 
 (n+a-1) * LaguerreP(n-2,a,x) with 
<P>
<P>
LaguerreP(0,a,x) := 1 and LaguerreP(2,a,x) := -x+1+a 
<P>
<P>
<P>

<a name=r38_0504>

<title>LegendreP</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>LEGENDREP</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
The binary <em>LegendreP</em> operator computes the nth Legendre 
Polynomial which is 
a special case of the nth Jacobi Polynomial with 
<P>
<P>
LegendreP(n,x) := JacobiP(n,0,0,x) 
<P>
<P>
The ternary form returns the associated Legendre Polynomial (see below). 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>LegendreP</em>(&lt;integer&gt;,&lt;expression&gt;) or 
<P>
<P>
<em>LegendreP</em>(&lt;integer&gt;,&lt;expression&gt;,&lt;expression&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
LegendreP(3,xx); 

          2
  xx*(5*xx   - 3)
  ----------------
         2



LegendreP(3,2,xx); 

              2
  15*xx*( - xx   + 1)

</tt></pre><p>The ternary form of the operator <em>LegendreP</em> is the associa
ted 
Legendre Polynomial defined as 
 <P>
<P>
P(n,m,x) = (-1)**m * (1-x**2)**(m/2) * df(LegendreP(n,x),x,m) 
<P>
<P>
<P>

<a name=r38_0505>

<title>JacobiP</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>JACOBIP</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
The <em>JacobiP</em> operator computes the nth Jacobi Polynomial. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>JacobiP</em>(&lt;integer&gt;,&lt;expression&gt;,&lt;expression&gt;, 
 &lt;expression&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
JacobiP(3,4,5,xx); 

          3         2
  7*(65*xx   - 13*xx   - 13*xx + 1)
  ----------------------------------
                  8



JacobiP(3,4,5,6); 

  94465/8

</tt></pre><p>
<a name=r38_0506>

<title>GegenbauerP</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>GEGENBAUERP</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 <P>
<P>
The <em>GegenbauerP</em> operator computes Gegenbauer's (ultraspherical) 
polynomials. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>GegenbauerP</em>(&lt;integer&gt;,&lt;expression&gt;,&lt;expression&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
GegenbauerP(3,2,xx); 

            2
  4*xx*(8*xx   - 3)



GegenbauerP(3,2,4); 

  2000

</tt></pre><p>
<a name=r38_0507>

<title>SolidHarmonicY</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>SOLIDHARMONICY</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 <P>
<P>
The <em>SolidHarmonicY</em> operator computes Solid harmonic (Laplace) 
polynomials. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>SolidHarmonicY</em>(&lt;integer&gt;,&lt;integer&gt;, 
&lt;expression&gt;,&lt;expression&gt;,&lt;expression&gt;,&lt;expression&gt;) 
<P>
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>

SolidHarmonicY(3,-2,x,y,z,r2); 

                           2    2
  sqrt(105)*z*(-2*i*x*y + x  - y )
  ---------------------------------
         4*sqrt(pi)*sqrt(2)

</tt></pre><p>
<a name=r38_0508>

<title>SphericalHarmonicY</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>SPHERICALHARMONICY</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 <P>
<P>
The <em>SphericalHarmonicY</em> operator computes Spherical harmonic (Laplace) 
polynomials. These are special cases of the 
solid harmonic polynomials, 
<a href=r38_0500.html#r38_0507>SolidHarmonicY</a>. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>SphericalHarmonicY</em>(&lt;integer&gt;,&lt;integer&gt;, 
&lt;expression&gt;,&lt;expression&gt;) 
<P>
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
SphericalHarmonicY(3,2,theta,phi); 


                                 2          2                               2
  sqrt(105)*cos(theta)*sin(theta) *(cos(phi) +2*cos(phi)*sin(phi)*i-sin(phi) )
  -----------------------------------------------------------------------------
                               4*sqrt(pi)*sqrt(2)

</tt></pre><p>
<a name=r38_0509>

<title>Orthogonal Polynomials</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>
<b>Orthogonal Polynomials</b><menu>
<li><a href=r38_0500.html#r38_0500>ChebyshevT operator</a><P>
<li><a href=r38_0500.html#r38_0501>ChebyshevU operator</a><P>
<li><a href=r38_0500.html#r38_0502>HermiteP operator</a><P>
<li><a href=r38_0500.html#r38_0503>LaguerreP operator</a><P>
<li><a href=r38_0500.html#r38_0504>LegendreP operator</a><P>
<li><a href=r38_0500.html#r38_0505>JacobiP operator</a><P>
<li><a href=r38_0500.html#r38_0506>GegenbauerP operator</a><P>
<li><a href=r38_0500.html#r38_0507>SolidHarmonicY operator</a><P>
<li><a href=r38_0500.html#r38_0508>SphericalHarmonicY operator</a><P>
</menu>
<a name=r38_0510>

<title>Si</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>SI</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 <P>
<P>
The <em>Si</em> operator returns the Sine Integral function. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>Si</em>(&lt;expression&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
limit(Si(x),x,infinity); 

  pi / 2 


on rounded; 

Si(0.35); 

  0.347626790989

</tt></pre><p>The numeric values for the operator <em>Si</em> are computed via t
he 
power series representation, which limits the argument range. 
<P>
<P>
<P>

<a name=r38_0511>

<title>Shi</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>SHI</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 <P>
<P>
The <em>Shi</em> operator returns the hyperbolic Sine Integral function. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>Shi</em>(&lt;expression&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
df(shi(x),x); 

  sinh(x) / x 


on rounded; 

Shi(0.35); 

  0.352390716351

</tt></pre><p>The numeric values for the operator <em>Shi</em> are computed via 
the 
power series representation, which limits the argument range. 
<P>
<P>
<P>

<a name=r38_0512>

<title>s_i</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>S_I</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 <P>
<P>
The <em>s_i</em> operator returns the Sine Integral function si. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>s_i</em>(&lt;expression&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
s_i(xx); 

  (2*Si(xx) - pi) / 2 


df(s_i(x),x); 

  sin(x) / x

</tt></pre><p>The operator name <em>s_i</em> is simplified towards 
<a href=r38_0500.html#r38_0510>SI</a>. 
Since REDUCE is not case sensitive by default the name ``si'' can't be 
used. 
<P>
<P>
<P>

<a name=r38_0513>

<title>Ci</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>CI</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 <P>
<P>
The <em>Ci</em> operator returns the Cosine Integral function. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>Ci</em>(&lt;expression&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
defint(cos(t)/t,t,x,infinity); 

  - ci (x) 


on rounded; 

Ci(0.35); 

  - 0.50307556932

</tt></pre><p>The numeric values for the operator <em>Ci</em> are computed via t
he 
power series representation, which limits the argument range. 
<P>
<P>
<P>

<a name=r38_0514>

<title>Chi</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>CHI</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 <P>
<P>
The <em>Chi</em> operator returns the Hyperbolic Cosine Integral function. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>Chi</em>(&lt;expression&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
defint((cosh(t)-1)/t,t,0,x); 

  - log(x) + psi(1) + chi(x)


on rounded; 

Chi(0.35); 

  - 0.44182471827

</tt></pre><p>The numeric values for the operator <em>Chi</em> are computed via 
the 
power series representation, which limits the argument range. 
<P>
<P>
<P>

<a name=r38_0515>

<title>ERF_extended</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>ERF EXTENDED</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 <P>
<P>
The special function package supplies an extended support for the 

<a href=r38_0250.html#r38_0255>erf</a> operator which implements the <em>error f
unction</em> 
<P>
<P>
defint(e**(-x**2),x,0,infinity) * 2/sqrt(pi) 
<P>
<P>
. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>erf</em>(&lt;expression&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
erf(-x); 

  - erf(x)


on rounded; 

erf(0.35); 

  0.379382053562

</tt></pre><p>The numeric values for the operator <em>erf</em> are computed via 
the 
power series representation, which limits the argument range. 
<P>
<P>
<P>

<a name=r38_0516>

<title>erfc</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>ERFC</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 <P>
<P>
The <em>erfc</em> operator returns the complementary Error function 
<P>
<P>
1 - defint(e**(-x**2),x,0,infinity) * 2/sqrt(pi) 
<P>
<P>
. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>erfc</em>(&lt;expression&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
erfc(xx); 

  - erf(xx) + 1

</tt></pre><p>The operator <em>erfc</em> is simplified towards the 
<a href=r38_0250.html#r38_0255>erf</a> operator. 
<P>
<P>
<P>

<a name=r38_0517>

<title>Ei</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>EI</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 <P>
<P>
The <em>Ei</em> operator returns the Exponential Integral function. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>Ei</em>(&lt;expression&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
df(ei(x),x); 

   x
  e
  ---
  x


on rounded; 

Ei(0.35); 

  - 0.0894340019184

</tt></pre><p>The numeric values for the operator <em>Ei</em> are computed via t
he 
power series representation, which limits the argument range. 
<P>
<P>
<P>

<a name=r38_0518>

<title>Fresnel_C</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>FRESNEL_C</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
The <em>Fresnel_C</em> operator represents Fresnel's Cosine function. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>Fresnel_C</em>(&lt;expression&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
int(cos(t^2*pi/2),t,0,x); 

  fresnel_c(x) 


on rounded; 

fresnel_c(2.1); 

  0.581564135061

</tt></pre><p>The operator <em>Fresnel_C</em> has a limited numeric evaluation o
f 
large values of its argument. 
<P>
<P>
<P>

<a name=r38_0519>

<title>Fresnel_S</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>FRESNEL_S</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
The <em>Fresnel_S</em> operator represents Fresnel's Sine Integral function. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>Fresnel_S</em>(&lt;expression&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
int(sin(t^2*pi/2),t,0,x); 

  fresnel_s(x) 


on rounded; 

fresnel_s(2.1); 

  0.374273359378

</tt></pre><p>The operator <em>Fresnel_S</em> has a limited numeric evaluation o
f 
large values of its argument. 
<P>
<P>
<P>

<a name=r38_0520>

<title>Integral Functions</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>
<b>Integral Functions</b><menu>
<li><a href=r38_0500.html#r38_0510>Si operator</a><P>
<li><a href=r38_0500.html#r38_0511>Shi operator</a><P>
<li><a href=r38_0500.html#r38_0512>s_i operator</a><P>
<li><a href=r38_0500.html#r38_0513>Ci operator</a><P>
<li><a href=r38_0500.html#r38_0514>Chi operator</a><P>
<li><a href=r38_0500.html#r38_0515>ERF extended operator</a><P>
<li><a href=r38_0500.html#r38_0516>erfc operator</a><P>
<li><a href=r38_0500.html#r38_0517>Ei operator</a><P>
<li><a href=r38_0500.html#r38_0518>Fresnel_C operator</a><P>
<li><a href=r38_0500.html#r38_0519>Fresnel_S operator</a><P>
</menu>
<a name=r38_0521>

<title>BINOMIAL</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>BINOMIAL</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
The <em>Binomial</em> operator returns the Binomial coefficient if both 
parameter are integer and expressions involving the Gamma function otherwise. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>Binomial</em>(&lt;integer&gt;,&lt;integer&gt;) 
<P>
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
Binomial(49,6); 

  13983816 



Binomial(n,3); 

   gamma(n + 1)
  ---------------
  6*gamma(n - 2)

</tt></pre><p>The operator <em>Binomial</em> evaluates the Binomial coefficients
 from 
the explicit form and therefore it is not the best algorithm if you 
want to compute many binomial coefficients with big indices in which 
case a recursive algorithm is preferable. 
<P>
<P>
<P>

<a name=r38_0522>

<title>STIRLING1</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>STIRLING1</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
The <em>Stirling1</em> operator returns the Stirling Numbers S(n,m) of the first
 
kind, i.e. the number of permutations of n symbols which have exactly m cycles 
(divided by (-1)**(n-m)). 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>Stirling1</em>(&lt;integer&gt;,&lt;integer&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
Stirling1 (17,4); 

  -87077748875904 


Stirling1 (n,n-1); 

  -gamma(n+1)
  -------------
  2*gamma(n-1)

</tt></pre><p>The operator <em>Stirling1</em> evaluates the Stirling numbers of 
the 
first kind by rulesets for special cases or by a computing the closed 
form, which is a series involving the operators 
<a href=r38_0500.html#r38_0521>BINOMIAL</a> 
and 
<a href=r38_0500.html#r38_0523>STIRLING2</a>. 
<P>
<P>
<P>

<a name=r38_0523>

<title>STIRLING2</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>STIRLING2</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
The <em>Stirling1</em> operator returns the Stirling Numbers S(n,m) of the 
second kind, i.e. the number of ways of partitioning a set of n elements 
into m non-empty subsets. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>Stirling2</em>(&lt;integer&gt;,&lt;integer&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
Stirling2 (17,4); 

  694337290 


Stirling2 (n,n-1); 

   gamma(n+1)
  -------------
  2*gamma(n-1)

</tt></pre><p>The operator <em>Stirling2</em> evaluates the Stirling numbers of 
the 
second kind by rulesets for special cases or by a computing the closed 
form. 
<P>
<P>
<P>

<a name=r38_0524>

<title>Combinatorial Operators</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>
<b>Combinatorial Operators</b><menu>
<li><a href=r38_0500.html#r38_0521>BINOMIAL operator</a><P>
<li><a href=r38_0500.html#r38_0522>STIRLING1 operator</a><P>
<li><a href=r38_0500.html#r38_0523>STIRLING2 operator</a><P>
</menu>
<a name=r38_0525>

<title>ThreejSymbol</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>THREEJSYMBOL</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
The <em>ThreejSymbol</em> operator implements the 3j symbol. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>ThreejSymbol</em>(&lt;list of j1,m1&gt;,&lt;list of j2,m2&gt;, 
&lt;list of j3,m3&gt;) 
<P>
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>

ThreejSymbol({j+1,m},{j+1,-m},{1,0}); 


        j
  ( - 1)  *(abs(j - m + 1) - abs(j + m + 1))
  -------------------------------------------
             3       2                    m
   2*sqrt(2*j   + 9*j   + 13*j + 6)*( - 1)

</tt></pre><p>
<a name=r38_0526>

<title>Clebsch_Gordan</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>CLEBSCH_GORDAN</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
The <em>Clebsch_Gordan</em> operator implements the Clebsch_Gordan 
coefficients. This is closely related to the 
<a href=r38_0500.html#r38_0525>Threejsymbol</a>. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>Clebsch_Gordan</em>(&lt;list of j1,m1&gt;,&lt;list of j2,m2&gt;, 
&lt;list of j3,m3&gt;) 
<P>
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
 Clebsch_Gordan({2,0},{2,0},{2,0}); 


     -2
  ---------
  sqrt(14)

</tt></pre><p>
<a name=r38_0527>

<title>SixjSymbol</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>SIXJSYMBOL</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
The <em>SixjSymbol</em> operator implements the 6j symbol. 
 <P> <H3> 
syntax: </H3>
<P>
<P>
<em>SixjSymbol</em>(&lt;list of j1,j2,j3&gt;,&lt;list of l1,l2,l3&gt;) 
<P>
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>

SixjSymbol({7,6,3},{2,4,6}); 

       1
  -------------
  14*sqrt(858)

</tt></pre><p>The operator <em>SixjSymbol</em> uses the 
<a href=r38_0650.html#r38_0654>ineq</a> package in order 
to find minima and maxima for the summation index. 
<P>
<P>
<P>

<a name=r38_0528>

<title>3j and 6j symbols</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>
<b>3j and  6j symbols</b><menu>
<li><a href=r38_0500.html#r38_0525>ThreejSymbol operator</a><P>
<li><a href=r38_0500.html#r38_0526>Clebsch_Gordan operator</a><P>
<li><a href=r38_0500.html#r38_0527>SixjSymbol operator</a><P>
</menu>
<a name=r38_0529>

<title>HYPERGEOMETRIC</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>HYPERGEOMETRIC</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 <P>
<P>
The <em>Hypergeometric</em> operator provides simplifications for the 
generalized hypergeometric functions. 
The <em>Hypergeometric</em> operator is included in the package specfn2. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>hypergeometric</em>(&lt;list of parameters&gt;,&lt;list of parameters&gt;, 
 &lt;argument&gt;) 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
load specfn2;

hypergeometric ({1/2,1},{3/2},-x^2); 


  atan(x)
  --------
     x


hypergeometric ({},{},z); 

   z
  e

</tt></pre><p>The special case where the length of the first list is equal to 2 
and 
the length of the second list is equal to 1 is often called 
``the hypergeometric function'' (notated as 2F1(a1,a2,b;x)). 
<P>
<P>
<P>

<a name=r38_0530>

<title>MeijerG</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>MEIJERG</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
The <em>MeijerG</em> operator provides simplifications for Meijer's G 
function. The simplifications are performed towards polynomials, 
elementary or 
special functions or (generalized) 
<a href=r38_0500.html#r38_0529>hypergeometric</a> functions. 
<P>
<P>
The <em>MeijerG</em> operator is included in the package specfn2. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>MeijerG</em>(&lt;list of parameters&gt;,&lt;list of parameters&gt;, 
 &lt;argument&gt;) 
<P>
<P>
<P>
The first element of the lists has to be the list containing the 
first group (mostly called ``m'' and ``n'') of parameters. This passes 
the four parameters of a Meijer's G function implicitly via the 
length of the lists. 
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
load specfn2;

MeijerG({{},1},{{0}},x); 

  heaviside(-x+1)


MeijerG({{}},{{1+1/4},1-1/4},(x^2)/4) * sqrt pi;
 


                  2
  sqrt(2)*sin(x)*x
  ------------------
      4*sqrt(x)

</tt></pre><p>Many well-known functions can be written as G functions, 
e.g. exponentials, logarithms, trigonometric functions, Bessel functions 
and hypergeometric functions. 
The formulae can be found e.g. in 
<P>
<P>
A.P.Prudnikov, Yu.A.Brychkov, O.I.Marichev: 
Integrals and Series, Volume 3: More special functions, 
Gordon and Breach Science Publishers (1990). 
<P>
<P>
<P>

<a name=r38_0531>

<title>Heaviside</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>HEAVISIDE</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
<P>
<P>
The <em>Heaviside</em> operator returns the Heaviside function. 
<P>
<P>
Heaviside(~w) =&gt; if (w &lt;0) then 0 else 1 
<P>
<P>
when numberp w; 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>Heaviside</em>(&lt;argument&gt;) 
<P>
<P>
<P>
This operator is often included in the result of the simplification 
of a generalized 
<a href=r38_0500.html#r38_0529>hypergeometric</a> function or a 

<a href=r38_0500.html#r38_0530>MeijerG</a> function. 
<P>
<P>
No simplification is done for this function. 
<P>
<P>
<P>

<a name=r38_0532>

<title>erfi</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>ERFI</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
<P>
<P>
The <em>erfi</em> operator returns the error function of an imaginary argument. 

<P>
<P>
erfi(~x) =&gt; 2/sqrt(pi) * defint(e**(t**2),t,0,x); 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>erfi</em>(&lt;argument&gt;) 
<P>
<P>
<P>
This operator is sometimes included in the result of the simplification 
of a generalized 
<a href=r38_0500.html#r38_0529>hypergeometric</a> function or a 

<a href=r38_0500.html#r38_0530>MeijerG</a> function. 
<P>
<P>
No simplification is done for this function. 
<P>
<P>
<P>

<a name=r38_0533>

<title>Miscellaneous</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>
<b>Miscellaneous</b><menu>
<li><a href=r38_0500.html#r38_0529>HYPERGEOMETRIC operator</a><P>
<li><a href=r38_0500.html#r38_0530>MeijerG operator</a><P>
<li><a href=r38_0500.html#r38_0531>Heaviside operator</a><P>
<li><a href=r38_0500.html#r38_0532>erfi operator</a><P>
</menu>
<a name=r38_0534>

<title>Special Functions</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>
<b>Special Functions</b><menu>
<li><a href=r38_0400.html#r38_0444>Special Function Package introduction</a><P>
<li><a href=r38_0400.html#r38_0445>Constants concept</a><P>
<li><a href=r38_0450.html#r38_0451>Bernoulli Euler Zeta</a><P>
<li><a href=r38_0450.html#r38_0463>Bessel Functions</a><P>
<li><a href=r38_0450.html#r38_0468>Airy Functions</a><P>
<li><a href=r38_0450.html#r38_0490>Jacobi's Elliptic Functions and Elliptic Inte
grals</a><P>
<li><a href=r38_0450.html#r38_0496>Gamma and Related Functions</a><P>
<li><a href=r38_0450.html#r38_0499>Miscellaneous Functions</a><P>
<li><a href=r38_0500.html#r38_0509>Orthogonal Polynomials</a><P>
<li><a href=r38_0500.html#r38_0520>Integral Functions</a><P>
<li><a href=r38_0500.html#r38_0524>Combinatorial Operators</a><P>
<li><a href=r38_0500.html#r38_0528>3j and  6j symbols</a><P>
<li><a href=r38_0500.html#r38_0533>Miscellaneous</a><P>
</menu>
<a name=r38_0535>

<title>TAYLOR_introduction</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>TAYLOR</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>introduction</b><P>
<P>
 
This short note describes a package of REDUCE procedures that allow 
Taylor expansion in one or more variables and efficient manipulation 
of the resulting Taylor series. Capabilities include basic operations 
(addition, subtraction, multiplication and division) and also 
application of certain algebraic and transcendental functions. To a 
certain extent, Laurent expansion can be performed as well. 
<P>
<P>

<a name=r38_0536>

<title>taylor</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>TAYLOR</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 The <em>taylor</em> operator is used for expanding an expression into a 
 Taylor series. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>taylor</em>(&lt;expression&gt; 
 <em>,</em>&lt;var&gt;<em>,</em> 
 &lt;expression&gt;<em>,</em>&lt;number&gt; 
<P>
<P>
{<em>,</em>&lt;var&gt;<em>,</em> 
 &lt;expression&gt;<em>,</em>&lt;number&gt;}*) 
 <P>
<P>
<P>
&lt;expression&gt; can be any valid REDUCE algebraic expression. 
 &lt;var&gt; must be a 
<a href=r38_0001.html#r38_0002>kernel</a>, and is the expansion 
 variable. The &lt;expression&gt; following it denotes the point 
 about which the expansion is to take place. &lt;number&gt; must be a 
 non-negative integer and denotes the maximum expansion order. If 
 more than one triple is specified <em>taylor</em> will expand its 
 first argument independently with respect to all the variables. 
 Note that once the expansion has been done it is not possible to 
 calculate higher orders. 
<P>
<P>
Instead of a 
<a href=r38_0001.html#r38_0002>kernel</a>, &lt;var&gt; may also be a list of 
 kernels. In this case expansion will take place in a way so that 
 the sum/ of the degrees of the kernels does not exceed the 
 maximum expansion order. If the expansion point evaluates to the 
 special identifier <em>infinity</em>, <em>taylor</em> tries to expand in 
 a series in 1/&lt;var&gt;. 
<P>
<P>
The expansion is performed variable per variable, i.e. in the 
 example above by first expanding 
 exp(x^2+y^2) 
 with respect to 
 <em>x</em> and then expanding every coefficient with respect to <em>y</em>. 
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
    taylor(e^(x^2+y^2),x,0,2,y,0,2); 


       2    2    2  2      2  2
  1 + Y  + X  + Y *X  + O(X ,Y )   


    taylor(e^(x^2+y^2),{x,y},0,2); 


       2    2       2  2
  1 + Y  + X  + O({X ,Y })

</tt></pre><p>The following example shows the case of a non-analytical function.
<p><pre><tt>

    taylor(x*y/(x+y),x,0,2,y,0,2); 


  ***** Not a unit in argument to QUOTTAYLOR 

</tt></pre><p> 
<P>
<P>
Note that it is not generally possible to apply the standard 
 reduce operators to a Taylor kernel. For example, 
<a href=r38_0150.html#r38_0169>part</a>, 
 
<a href=r38_0100.html#r38_0141>coeff</a>, or 
<a href=r38_0100.html#r38_0142>coeffn</a> cannot be used. Instead, the 
 expression at hand has to be converted to standard form first 
 using the 
<a href=r38_0500.html#r38_0547>taylortostandard</a> operator. 
<P>
<P>
Differentiation of a Taylor expression is possible. If you 
 differentiate with respect to one of the Taylor variables the 
 order will decrease by one. 
<P>
<P>
Substitution is a bit restricted: Taylor variables can only be 
 replaced by other kernels. There is one exception to this rule: 
 you can always substitute a Taylor variable by an expression that 
 evaluates to a constant. Note that REDUCE will not always be able 
 to determine that an expression is constant: an example is 
 sin(acos(4)). 
<P>
<P>
Only simple taylor kernels can be integrated. More complicated 
 expressions that contain Taylor kernels as parts of themselves are 
 automatically converted into a standard representation by means of 
 the 
<a href=r38_0500.html#r38_0547>taylortostandard</a> operator. In this case a sui
table 
 warning is printed. 
<P>
<P>
<P>
<P>

<a name=r38_0537>

<title>taylorautocombine</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>TAYLORAUTOCOMBINE</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>switch</b><P>
<P>
 
 If you set <em>taylorautocombine</em> to <em>on</em>, REDUCE 
 automatically combines Taylor expressions during the simplification 
 process. This is equivalent to applying 
<a href=r38_0500.html#r38_0539>taylorcombine</a> to 
 every expression that contains Taylor kernels. Default is 
 <em>on</em>. 
<P>
<P>

<a name=r38_0538>

<title>taylorautoexpand</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>TAYLORAUTOEXPAND</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>switch</b><P>
<P>
 
 <em>taylorautoexpand</em> makes Taylor expressions ``contagious'' in 
 the sense that 
<a href=r38_0500.html#r38_0539>taylorcombine</a> tries to Taylor expand all 
 non-Taylor subexpressions and to combine the result with the rest. 
 Default is <em>off</em>. 
<P>
<P>

<a name=r38_0539>

<title>taylorcombine</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>TAYLORCOMBINE</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 This operator tries to combine all Taylor kernels found in its 
 argument into one. Operations currently possible are: 
 <P>
<P>
 _ _ _ Addition, subtraction, multiplication, and division. 
 <P>
 _ _ _ Roots, exponentials, and logarithms. 
 <P>
 _ _ _ Trigonometric and hyperbolic functions and their inverses. 
 <P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
    hugo := taylor(exp(x),x,0,2); 

                  1  2      3
  HUGO := 1 + X + -*X  + O(X )
                  2


    taylorcombine log hugo; 

         3
  X + O(X )


    taylorcombine(hugo + x); 

           1  2      3
  (1 + X + -*X  + O(X )) + X
           2


    on taylorautoexpand; 

    taylorcombine(hugo + x); 

            1  2      3
  1 + 2*X + -*X  + O(X )  
            2

</tt></pre><p>Application of unary operators like <em>log</em> and <em>atan</em>
 
 will nearly always succeed. For binary operations their arguments 
 have to be Taylor kernels with the same template. This means that 
 the expansion variable and the expansion point must match. 
 Expansion order is not so important, different order usually means 
 that one of them is truncated before doing the operation. 
<P>
<P>
If 
<a href=r38_0500.html#r38_0540>taylorkeeporiginal</a> is set to <em>on</em> and 
if all 
 Taylor kernels in its argument have their original expressions 
 kept <em>taylorcombine</em> will also combine these and store the 
 result as the original expression of the resulting Taylor kernel. 
 There is also the switch 
<a href=r38_0500.html#r38_0538>taylorautoexpand</a>. 
<P>
<P>
There are a few restrictions to avoid mathematically undefined 
 expressions: it is not possible to take the logarithm of a Taylor 
 kernel which has no terms (i.e. is zero), or to divide by such a 
 beast. There are some provisions made to detect singularities 
 during expansion: poles that arise because the denominator has 
 zeros at the expansion point are detected and properly treated, 
 i.e. the Taylor kernel will start with a negative power. (This 
 is accomplished by expanding numerator and denominator separately 
 and combining the results.) Essential singularities of the known 
 functions (see above) are handled correctly. 
 <P>
<P>
<P>

<a name=r38_0540>

<title>taylorkeeporiginal</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>TAYLORKEEPORIGINAL</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>switch</b><P>
<P>
 
 <em>taylorkeeporiginal</em>, if set to <em>on</em>, forces the 
 
<a href=r38_0500.html#r38_0536>taylor</a> and all Taylor kernel manipulation ope
rators to 
 keep the original expression, i.e. the expression that was Taylor 
 expanded. All operations performed on the Taylor kernels are also 
 applied to this expression which can be recovered using the operator 
 
<a href=r38_0500.html#r38_0541>taylororiginal</a>. Default is <em>off</em>. 
<P>
<P>

<a name=r38_0541>

<title>taylororiginal</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>TAYLORORIGINAL</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 Recovers the original expression (the one that was expanded) from 
 the Taylor kernel that is given as its argument. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>taylororiginal</em>(&lt;expression&gt;) or 
 <em>taylororiginal</em> &lt;simple_expression&gt; 
 <P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
    hugo := taylor(exp(x),x,0,2); 

                  1  2      3
  HUGO := 1 + X + -*X  + O(X )
                  2


    taylororiginal hugo; 

  ***** Taylor kernel doesn't have an original part in TAYLORORIGINAL


    on taylorkeeporiginal; 

    hugo := taylor(exp(x),x,0,2); 

                  1  2      3
  HUGO := 1 + X + -*X  + O(X )
                  2


    taylororiginal hugo; 

   X
  E   

</tt></pre><p>An error is signalled if the argument is not a Taylor kernel or if
 
 the original expression was not kept, i.e. if 
 
<a href=r38_0500.html#r38_0540>taylorkeeporiginal</a> was set <em>off</em> durin
g expansion. 
 <P>
<P>
<P>

<a name=r38_0542>

<title>taylorprintorder</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>TAYLORPRINTORDER</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>switch</b><P>
<P>
 
 <em>taylorprintorder</em>, if set to <em>on</em>, causes the remainder 
 to be printed in big-O notation. Otherwise, three dots are printed. 
 Default is <em>on</em>. 
<P>
<P>

<a name=r38_0543>

<title>taylorprintterms</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>TAYLORPRINTTERMS</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>variable</b><P>
<P>
 
 Only a certain number of (non-zero) coefficients are printed. If 
 there are more, an expression of the form <em>n terms</em> is printed 
 to indicate how many non-zero terms have been suppressed. The 
 number of terms printed is given by the value of the shared 
 algebraic variable <em>taylorprintterms</em>. Allowed values are 
 integers and the special identifier <em>all</em>. The latter setting 
 specifies that all terms are to be printed. The default setting is 
 5. 
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
    taylor(e^(x^2+y^2),x,0,4,y,0,4); 


       2   1  4    2    2  2                              5  5
  1 + Y  + -*Y  + X  + Y *X  +             (4 terms) + O(X ,Y )
           2


    taylorprintterms := all; 

  TAYLORPRINTTERMS := ALL 


    taylor(e^(x^2+y^2),x,0,4,y,0,4); 


       2   1  4    2    2  2   1  4  2   1  4   1  2  4
  1 + Y  + -*Y  + X  + Y *X  + -*Y *X  + -*X  + -*Y *X
           2                   2         2      2
     1  4  4      5  5
   + -*Y *X  + O(X ,Y )
     4
      

</tt></pre><p>
<a name=r38_0544>

<title>taylorrevert</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>TAYLORREVERT</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 <em>taylorrevert</em> allows reversion of a Taylor series of a 
 function f, i.e., to compute the first terms of the expansion of the 
 inverse of f from the expansion of f. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>taylorrevert</em>(&lt;expression&gt;<em>,</em> 
 &lt;var&gt;<em>,</em>&lt;var&gt;) 
 <P>
<P>
<P>
The first argument must evaluate to a Taylor kernel with the second 
 argument being one of its expansion variables. 
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
    taylor(u - u**2,u,0,5); 

       2      6
  U - U  + O(U ) 


    taylorrevert (ws,u,x); 

       2      3      4       5      6
  X + X  + 2*X  + 5*X  + 14*X  + O(X )  

</tt></pre><p>
<a name=r38_0545>

<title>taylorseriesp</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>TAYLORSERIESP</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 This operator may be used to determine if its argument is a Taylor 
 kernel. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>taylorseriesp</em>(&lt;expression&gt;) or <em>taylorseriesp</em> 
 &lt;simple_expression&gt; 
 <P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
    hugo := taylor(exp(x),x,0,2); 

                  1  2      3
  HUGO := 1 + X + -*X  + O(X )
                  2


    if taylorseriesp hugo then OK;

  OK 


    if taylorseriesp(hugo + y) then OK else NO; 


  NO  

</tt></pre><p>Note that this operator is subject to the same restrictions as, 
 e.g., <em>ordp</em> or <em>numberp</em>, i.e. it may only be used in 
 boolean expressions in <em>if</em> or <em>let</em> statements. 
 <P>
<P>
<P>

<a name=r38_0546>

<title>taylortemplate</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>TAYLORTEMPLATE</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 The template of a Taylor kernel, i.e. the list of all variables 
 with respect to which expansion took place together with expansion 
 point and order can be extracted using 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>taylortemplate</em>(&lt;expression&gt;) or 
 <em>taylortemplate</em> &lt;simple_expression&gt; 
 <P>
<P>
<P>
This returns a list of lists with the three elements 
 (VAR,VAR0,ORDER). An error is signalled if the argument is not a 
 Taylor kernel. 
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
    hugo := taylor(exp(x),x,0,2); 

                  1  2      3
  HUGO := 1 + X + -*X  + O(X )
                  2


    taylortemplate hugo; 

  {{X,0,2}}  

</tt></pre><p>
<a name=r38_0547>

<title>taylortostandard</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>TAYLORTOSTANDARD</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>operator</b><P>
<P>
 
 This operator converts all Taylor kernels in its argument into 
 standard form and resimplifies the result. 
<P>
<P>
 <P> <H3> 
syntax: </H3>
<em>taylortostandard</em>(&lt;expression&gt;) or 
 <em>taylortostandard</em> &lt;simple_expression&gt; 
<P>
<P>
<P>
 <P> <H3> 
examples: </H3>
<p><pre><tt>
    hugo := taylor(exp(x),x,0,2); 

                  1  2      3
  HUGO := 1 + X + -*X  + O(X )
                  2


    taylortostandard hugo; 

   2
  X  + 2*X + 2
  ------------  
       2

</tt></pre><p><P>

<a name=r38_0548>

<title>Taylor series</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>
<b>Taylor series</b><menu>
<li><a href=r38_0500.html#r38_0535>TAYLOR introduction</a><P>
<li><a href=r38_0500.html#r38_0536>taylor operator</a><P>
<li><a href=r38_0500.html#r38_0537>taylorautocombine switch</a><P>
<li><a href=r38_0500.html#r38_0538>taylorautoexpand switch</a><P>
<li><a href=r38_0500.html#r38_0539>taylorcombine operator</a><P>
<li><a href=r38_0500.html#r38_0540>taylorkeeporiginal switch</a><P>
<li><a href=r38_0500.html#r38_0541>taylororiginal operator</a><P>
<li><a href=r38_0500.html#r38_0542>taylorprintorder switch</a><P>
<li><a href=r38_0500.html#r38_0543>taylorprintterms variable</a><P>
<li><a href=r38_0500.html#r38_0544>taylorrevert operator</a><P>
<li><a href=r38_0500.html#r38_0545>taylorseriesp operator</a><P>
<li><a href=r38_0500.html#r38_0546>taylortemplate operator</a><P>
<li><a href=r38_0500.html#r38_0547>taylortostandard operator</a><P>
</menu>
<a name=r38_0549>

<title>GNUPLOT_and_REDUCE</title></a>
<p align="centre"><img src="redlogo.gif" width=621 height=60 border=0 alt="REDUC
E"></p>
<b><a href=r38_idx.html>INDEX</a></b><p><p>



<b>GNUPLOT AND REDUCE</b> _ _ _  _ _ _  _ _ _  _ _ _ <b>introduction</b><P>
<P>
 
<P>
<P>
The GNUPLOT system provides easy to use graphics output 
for curves or surfaces which are defined by 
formulas and/or data sets. GNUPLOT supports 
a great variety of output devices 
such as X-windows, VGA screen, postscript, picTeX. 
The REDUCE GNUPLOT package lets one use the GNUPLOT 
graphical output directly from inside REDUCE, either for 
the interactive display of curves/surfaces or for the production 
of pictures on paper. 
<P>
<P>
Note that this package may not be supported on all system 
platforms. 
<P>
<P>
For a detailed description you should read the GNUPLOT 
system documentation, available together with the GNUPLOT 
installation material from several servers by anonymous FTP. 
<P>
<P>
The REDUCE developers thank the GNUPLOT people for their permission 
to distribute GNUPLOT together with REDUCE. 
<P>
<P>
