Escolar Documentos
Profissional Documentos
Cultura Documentos
Fabrizio Caruso
am
Institut fur Symbolis
hes Re
hnen (RISC)
Te
hnis
h-Naturwissens
haftli
he Fakultat
Johannes Kepler Universitat Linz
Dezember 2002
Eidesstattli
he Erklarung
I
h versi
here, dass i
h die Dissertation selbstandig verfasst habe, andere als die
angegebenen Quellen und Hilfsmittel ni
ht verwendet und mi
h au
h sonst keiner
unerlaubten Hilfe bedient habe.
Linz, Dezember 2002
Fabrizio Caruso
ii
Abstra
t
The obje
t of the thesis is twofold. Firstly we improve Zeilberger's algorithm for
symboli
denite hypergeometri
summation by interpolating the solutions of the
related system of linear equations with rational fun
tion
oe
ients. Se
ondly
we develop a C++/Mathemati
a program library for polynomial arithmeti
that
implements fast multipli
ation of sparse polynomials and some of the operations
related to homogeneous linear diophantine inequalities and equations as studied
in Ma
Mahon's partition analysis and in its algorithmi
version (
-
al
ulus),
namely exponentiation of low degree polynomials and division by powers of low
degree polynomials.
Zusammenfassung
Diese Dissertation setzt si
h aus zwei Teilen zusammen. Zum einen bes
haftigen
wir uns mit der Verbesserung des Algorithmus von Zeilberger zur symbolis
hen
deniten hypergeometris
hen Summation mittels Interpolation der Losungen des
korrespondierenden Systems von linearen Glei
hungen mit rationalen Funktionen als Koezienten. Zum anderen entwi
keln wir eine C++/Mathemati
a
Programm-Bibliothek fur polynomiale Arithmetik, die die s
hnelle Multiplikation von dunn besetzen Polynomen sowie einige der Operationen, die in Systemen von homogenen linearen diophantis
hen Unglei
hungen und Glei
hungen
auftreten, implementiert, die in der Partitionsanalyse von Ma
Mahon und ihrer
algorithmis
hen Fassung (
-Kalkul) vorkommen, namli
h Exponenzierung von
Polynomen niedrigen Grades und Division dur
h Potenzen von Polynomen niedrigen Grades.
iii
iv
vi
A knowledgments
I would like to thank my adviser Prof. P. Paule who has helped me during my
studies at the RISC institute with his
ontagious enthusiasm and with many
suggestions.
I would not have survived at RISC without the help and friendship of the
other members or the institute and in parti
ular of the members of the Combinatori
s Group: Cleopatra Pau, Axel Riese, Carsten S
hneider and Burkhard
Zimmermann with whom I have had pleasant dis
ussions on both mathemati
al
and profane topi
s.
I also thank Erhard Ai
hinger of the Universal Algebra group at the University
of Linz, who has given me useful suggestions.
A thank goes to my
olleagues Ralf Hemme
ke and Manuel Kauers for their
patient help with Unix and LATEX te
hni
alities.
vii
viii
A knowledgments
Contents
Introdu tion
Main Contributions
Basi Notations
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13
13
14
14
15
15
15
17
19
20
20
20
21
21
21
22
22
22
24
31
31
CONTENTS
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
Introdu
tion . . . . . . . . . . . . . . . . . . .
Notation . . . . . . . . . . . . . . . . . . . . .
The Homogeneous Problem . . . . . . . . . .
Rational Coe
ients . . . . . . . . . . . . . .
2.4.1 Denitions . . . . . . . . . . . . . . . .
2.4.2 Modular Approa
h . . . . . . . . . . .
2.4.3 Bounding the Solutions . . . . . . . . .
Rational Fun
tions . . . . . . . . . . . . . . .
2.5.1 Denitions . . . . . . . . . . . . . . . .
2.5.2 Interpolation . . . . . . . . . . . . . .
2.5.3 Bounding the Degrees of the Solutions
2.5.4 A Combination of the two Approa
hes
Distributed Computation . . . . . . . . . . . .
The Pa
kage . . . . . . . . . . . . . . . . . . .
2.7.1 Loading the Pa
kages . . . . . . . . . .
2.7.2 The Commands . . . . . . . . . . . . .
Con
lusion . . . . . . . . . . . . . . . . . . . .
3 Rational Interpolation
3.1
3.2
3.3
3.4
3.5
Introdu
tion . . . . . . . . . . . . . . . . . . .
Re
onstru
ting Rational Fun
tions . . . . . .
Cau
hy Interpolation . . . . . . . . . . . . . .
Pade Approximation . . . . . . . . . . . . . .
Homogeneous Linear Systems . . . . . . . . .
3.5.1 The First Try . . . . . . . . . . . . . .
3.5.2 A Heuristi
Method . . . . . . . . . . .
3.5.3 A Re
ursive Method . . . . . . . . . .
3.5.4 A Hybrid Method . . . . . . . . . . . .
3.6 The Pa
kage . . . . . . . . . . . . . . . . . . .
3.6.1 The Commands . . . . . . . . . . . . .
3.6.2 Modular Null Spa
e Computation . . .
3.6.3 Completing the Null Spa
e . . . . . . .
3.6.4 Hybrid Modular Symboli
Null Spa
e .
3.6.5 Rational Fun
tion Interpolation . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
37
37
37
38
39
40
41
44
45
45
45
46
47
47
48
49
49
51
53
53
53
54
56
57
58
58
58
58
59
59
60
62
63
66
xi
CONTENTS
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
69
69
69
69
70
74
76
77
78
79
80
81
89
91
92
93
95
97
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
Introdu
tion . . . . . . . . . . . . . . . . .
Denitions . . . . . . . . . . . . . . . . . .
Existen
e of the Inverse . . . . . . . . . .
Relation between C and q . . . . . . . . .
General Re
urren
e for C (i) . . . . . . . .
Lifting to the b(x ) Case . . . . . . . . . .
Combinatorial Meaning . . . . . . . . . . .
Binomial Case . . . . . . . . . . . . . . . .
5.8.1 Diagrams of Compositions . . . . .
5.8.2 Combinatorial Proof . . . . . . . .
5.9 Powers of Polynomials . . . . . . . . . . .
5.9.1 Initial Values . . . . . . . . . . . .
5.10 The Algorithms . . . . . . . . . . . . . . .
5.10.1 Modular Inverse . . . . . . . . . . .
5.10.2 Division by Powers of Polynomials
5.11 Summary . . . . . . . . . . . . . . . . . .
The PolyComb Pa
kage
6.1 Introdu
tion . . . . . . . . . . . . . . . . .
6.2 Stru
ture of the Library . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
97
97
99
100
102
103
104
105
107
109
114
116
116
116
116
117
119
. . . . . . . . . . . . . 119
. . . . . . . . . . . . . 119
xii
CONTENTS
6.3
6.4
6.5
6.6
6.7
6.8
6.9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
119
120
121
122
122
122
126
127
128
128
132
134
135
138
140
141
142
142
144
145
Appendix A
147
Appendix B
149
153
Bibliography
155
Index
159
Introdu tion
The obje
t of the thesis is twofold: improving Zeilberger's algorithm for symboli
denite hypergeometri
summation by re
onstru
ting the solutions of the related
system of linear equations with rational fun
tion
oe
ients by interpolation,
and
reating a library for polynomial arithmeti
that implements some of the
operations related to homogeneous linear diophantine inequalities and equations,
namely fast multipli
ation of sparse polynomials, exponentiation of low degree
polynomials, division by powers of low degree polynomials. The rst obje
t is
overed in the rst two parts (
hapters 1, 2, 3, 4) and the se
ond by the last part
(
hapters 5, 6).
Zeilberger's algorithm (see [Zei90, [Zei91) is the standard
omputational
method for symboli
denite hypergeometri
summation. Its
omputational
bottle-ne
k is a sparse system of linear equations with rational fun
tion
oef
ients. The rst two parts of the thesis deal with the implementation of the
algorithm, with two dierent approa
hes aimed at speeding up the solution of
systems of linear equations with rational fun
tion
oe
ients by polynomial and
rational interpolation, and with a new abstra
t model that gives information on
the degree of the solutions to the systems of linear equations related to Zeilberger's algorithm.
The third part of the thesis deals with the
ombinatorial interpretation and
with the implementation of some operations between polynomials that appear
as subproblems in the algorithms that implement Ma
Mahon's
-
al
ulus (see
[Ma
16, [APR01a, [AP99, [APRS, [APR01
, [APR01d, [APR01e, [APR01b),
whi
h is a
omputational method for solving problems in
onne
tion with linear
homogeneous diophantine inequalities and equations.
The rst part of the thesis (Zeilberger's Algorithm in the Ma
syma and Maxima Computer Algebra Systems)
onsists of one
hapter:
Chapter 1: Zeilberger's Algorithm in Ma
syma
In this
hapter we des
ribe Zeilberger's algorithm and our implementation
on the Ma
syma and Maxima
omputer algebra systems. Zeilberger's algorithm
solves the denite hypergeometri
summation problem, i.e. given a 2-variable
term F (n; k), we want to rewrite the denite sum f (n) = Pnk=0 F (n; k) in a
1
Introdu tion
form free of P. This is done by nding a spe
ial k-free linear re
urren
e with
polynomial
oe
ients for the summand F (n; k), whi
h, under the
ondition of
natural boundary for F (n; k),
an be extended into a k-free homogeneous linear
re
urren
e for the sum f (n) with polynomial
Pm
oe
ients. The desired linear
re
urren
e for the summand has the form: i=0 ai (n)F (n + i; k) = G(n; k +1)
G(n; k). The sear
h for this re
urren
e is done by guessing the order m of the left
hand side of this re
urren
e and then trying to nd the
orresponding G(n; k)
of the right hand side by means of a modied Gosper's algorithm ([Gos78). We
note that a priori upper bounds for m
an be given; however they turn out to
be too large and therefore not useful for pra
ti
al use. Gosper's algorithm for
the indenite summation problem solves the hypergeometri
teles
oping problem,
i.e. given a hypergeometri
term t(k), it de
ides if there is a hypergeometri
term
T (k) su
h that t(k) = k T (k) = T (k + 1) T (k), and if it exists, it nds it.
The se
ond part (Solving Systems of Linear Equations by Interpolation)
ontains three
hapters:
Chapter 2: Cramer Driven Interpolation
Chapter 3: Rational Interpolation
Chapter 4: Linear Systems in Zeilberger's Algorithm
The rst two
hapters des
ribe two dierent methods for solving systems of
linear equations with rational fun
tion
oe
ients. The last
hapter deals with
linear systems related to Zeilberger's algorithm and it gives more understanding
of some aspe
ts of Zeilberger's algorithm (whi
h is des
ribed in the rst
hapter).
In Chapter 2 (Cramer Driven Interpolation) a well-known algorithm based
on Cramer's rule and on polynomial interpolation is des
ribed. Su
h algorithm
solves overdetermined systems of homogeneous linear equations over Q and over
the eld of rational fun
tions over Q under the hypothesis that the null spa
e is
one-dimensional. The algorithm re
onstru
ts the numerators and denominators
of the
omponents of the solutions by
omputing dierent homomorphi
systems
over the nite elds Zp, with p prime.
In Chapter 3 (Rational Interpolation) we give a brief des
ription of the standard theory of the rational fun
tion re
onstru
tion problem, i.e. the problem of
nding a rational fun
tion of small degree that is
ongruent to some polynomial
modulo some other polynomial. Rational fun
tion re
onstru
tion has two important appli
ations: rational interpolation and rational fun
tion approximation.
We have used this theory to build an algorithm that
omputes the null spa
e of a
re
tangular matrix with entries in Q (y1 ; : : : ; yn) by re
onstru
ting some low degree
omponents by rational fun
tion interpolation and the others symboli
ally.
This is done by plugging the
omponents re
onstru
ted by rational fun
tion interpolation into the system in order to simplify it. This approa
h generalizes the
Introdu tion
Introdu tion
Thus polynomials over rings are dened over any ring of
oe
ients that provide
the ne
essary methods (operations) required by a ring.
Part 1
Linear Systems
Polynomial Arithmeti
Part 2
Part 3
Polynomial Arithmeti
Equations by Interpolation
Library
Chapter 1
Chapter 2
Chapter 5
Zeilberger's Algorithm in
Cramer Driven
Combinatorial Interpretation
Ma syma
Interpolation
of Division
First implementation
on a publi
domain
system
It
ould be used
to parallelize
Zeilberger's Algorithm
Relation between
polynomial division
and integer
ompositions
Chapter 3
Chapter 6
Rational Interpolation
It
an be used for
a probabilisti
Zeilberger's Algorithm
Implementation of fast
polynomial arithmeti
related to some
ombinatorial problems
Chapter 4
Linear Systems in
Zeilberger's Algorithm
Main Contributions
tion in a new way. The appli
ation of this model to the study of the degree
of the
omponents of the solutions of the linear systems related to Zeilberger's algorithm (Chapter 4).
on the omputation of modular powers of polynomials and division by powers of polynomials (Chapter 6).
Main Contributions
Basi Notations
N
Z
Zp
Q
;
R[x
R[x1 ; : : : ; xn
R[[x
Rm;n
F ( x)
jaj
jAj
jjajj1
jjajj2
ajb
a-b
dae
ba
[a1 ; : : : ; an
i
:=
10
Basi Notations
Part I
Zeilberger's Algorithm in the
Ma
syma and Maxima Computer
Algebra Systems
11
Chapter 1
Zeilberger's Algorithm in
Ma
syma
14
CHAPTER 1.
1.3.
15
THE ALGORITHMS
Denition 1.2.4. Given a 2-variable term F (k; n) over a eld K of
hara
teristi
0 is said proper hypergeometri
if and only if it is in the following form:
QI
i=0 ai k
QJ
j =0 dj k
( + bin +
i)! xk
( + ej n + fi)!
where p(k; n) is a polynomial in k and n, and ai , bi ,
i dj , ej , fi are integers and
x is a parameter.
This denition extends in the natural way to m-variable
ase, where m 2.
F (n; k) = p(n; k)
(1.1)
We will refer to the rational fun
tion G(n; k)=F (n; k) of Theorem 1.2.3 as
\rational
erti
ate".
16
CHAPTER 1.
3:
4:
5:
6:
7:
p(n + 1) q (n)
p(n) r(n + 1)
(1.2)
where g
d(q(n); r(n + j )) = 1 for all positive integers j 's, and p, q, and r are
polynomials. This pro
ess is des
ribed in detail in Chapter 4 in Algorithm 4.1.
Solve the following linear polynomial re
urren
e equation:
p(n) = q (n)s(n + 1) r(n)s(n);
(1.3)
where the polynomial s(n) is the unknown.
if no s(n) found then
return ``no hypergeometri
solution''
else
return
1
T (n) = s(n+1) q(n)
s(n) r(n)
1)
t( n ) :
1.3.
THE ALGORITHMS
17
Remark 1.3.1. The spe
ial form for the rational fun
tion ratt ,
alled Gosper
ondition, (see Algorithm 1.1)
an be
omputed by for
ing the g
d
ondition by
resultant
omputation and simple rewriting. For more details see Algorithm 4.1.
In the proper hypergeometri
ase, this step
an also be done by simple inspe
tion.
Remark 1.3.2. The linear re
urren
e equation (4.71) in Algorithm 1.1, known as
Gosper equation,
an be
omputed by plugging into it a polynomial with unknown
oe
ients, whose degree
an be properly bounded. For more details on how to
bound the degree of the polynomial we refer to [GKP94, page 227.
Why it works
For a formal proof of the
orre
tness of this algorithm we refer to [PWZ97,
[Gos78, [S
h95 and [GKP94, pages 223{241.
The idea of this algorithm is that we
an rewrite an indenite hypergeometri
summation problem into a linear re
urren
e. In fa
t, by Property 1.2.1 and Property 1.2.2, we have that the solution T (n) of the indenite summation problem
and the input fun
tion t(n) must dier by a fa
tor given by rational fun
tion r(t):
T (n) = r(n)t(n):
By plugging this into the desired property: t(n) = T (n + 1) T (n) and by
dividing both sides by t(n), we obtain the following re
urren
e equation over
rational fun
tions:
1 = r(n + 1)rat t(n) r(n)
where ratt (n) := t(n + 1)=t(n). Gosper
ould not solve this kind of re
urren
e
equations, whi
h today
an be solved by Abramov's method.[Abr95 For an alternative approa
h and a detailed explanation of the
onne
tion between these
strategies see, for instan
e, [Pau95. Gosper had to nd a way to get round this
problem: he rewrites rat t in a spe
ial form (See (1.2) in Algorithm 1.1) that leads
to a simpler linear re
urren
e equation in whi
h the unknown is a polynomial,
and that
an be solved by simple linear algebra.
1.3.2 Zeilberger's Algorithm
18
CHAPTER 1.
of hara ter-
isti
0.
A k-free linear re
urren
e with polynomial
oe
ients for F (n; k) of the
form:
m
X
ai (n)F (n + i; k) = G(n; k + 1) G(n; k)
(1.4)
i=0
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
ai (n)F (n; k)
1.4.
19
THE IMPLEMENTATION
p X
m
X
k=0 i=0
ai (n)F (n + i; k) =
Hen e:
n
X
i=0
p
X
k=0
(G(n; k + 1)
f (n + i) = G(n; p + 1) G(n; 0) = 0
When the summand does not have nite support the above equation will be
non-homogeneous.
Why it works
For a formal proof of the
orre
tness we refer to the literature on this topi
([PWZ97, [Zei90, [Zei91, [S
h95). Here we present the basi
idea behind it.
From Theorem 1.2.3 that states the existen
e of a k-free re
urren
e (see Se
tion 1.2.2) we know that forPany
proper hypergeometri
term F (n; k), there exists
a re
urren
e of the form: mi=0 ai (n)F (n + i; k) = G(n; k + 1) G(n; k). Zeilberger's algorithm tries to nd this re
urren
e by iteratively in
reasing the order
of the re
urren
e and by using a modied version of Gosper's algorithm to nd
its right hand side; this pro
edure stops be
ause of the termination of Gosper's
algorithm and be
ause of the theorem mentioned above.
20
CHAPTER 1.
The implementation of these two algorithms has been done in the internal
LISP-like language of the Ma
syma and Maxima
omputer algebra systems.
I implemented both algorithms in Ma
syma in a straightforward way and no
signi
ant
hanges have been made in the original algorithms.
1.4.1 Gosper's Algorithm
1.5 Performan
e
First of all we must point out that this implementation is only the rst attempt to
in
orporate Zeilberger's fast algorithm into the Ma
syma and Maxima
omputer
algebra systems and therefore it is very far from being
ompetitive with the best
existing optimized implementations (for example see [PS95).
No large s
ale test has been
arried out to assess the speed of this implementation. The only test that has been run on this implementation is the
olle
tion
of terms
ontained in the les testGosper.ma
syma and testZeilberger.ma
syma, among whi
h there are some powers of the binomial
oe
ient. In
reasing
powers of the binomial
oe
ients have been used to test the stability of the system and to obtain a rough idea of the performan
e of the system and to
ompare
1.5.
PERFORMANCE
21
it to some other implementations. I used this test suite be
ause of its simpli
ity
andpbe
ause we know a priori that the order of the re
urren
e for the summand
is d 2 e, where p is the power. (see [Cus89).
1.5.1 Timings
We present some timings obtained by testing the fun
tion parGosper on in
reasing powers of the binomial
oe
ients in whi
h no loop on the order of the
re
urren
e is run. In these tests the Paule-S
horn Mathemati
a implementation
[PS95 and our Ma
syma implementation are
ompared. These implementations
have been tested on an SGI O
tane with 2 gigabytes of RAM and two 250 Mhz
RISC pro
essors (although mu
h less memory was ne
essary to run the programs
on these examples).
Results
Note: Timings are in se
onds
power
order Paule=S
hornMathemati
a Ma
syma Ratio
3
2
0:36s
3:31s 9:19
4
2
0:92s
3:95s 4:29
5
3
4:47s
37:11s 8:30
6
3
16:98s
121:64s 7:16
Average ratio :
7:23
1.5.2 Stability
Our Ma
syma implementation tested on an SGI O
tane equipped with 2 gigabytes of RAM
ould no go beyond the sixth power of the binomial
oe
ient whereas Paule-S
horn Mathemati
a implementation was able to handle the
eleventh power. The sixth power of the binomial
oe
ient required less than 50
megabytes of memory.
1.5.3 Future Improvements
An analysis on the distribution of the
omputation time shows that in the \heavy
ases" (binomial
oe
ient to the fth and sixth powers) the bottle-ne
k is the
omputation of the solution of the linear systems of equations that is required to
solve the re
urren
e equation (Gosper's equation).
This version uses the built-in linear solver of Ma
syma and Maxima, whereas
Paule-S
horn Mathemati
a uses a spe
ial linear solver tailored for sparse systems.
Future optimized versions should use an ad ho
linear solver that
ould take
advantage of the spe
i
stru
ture of the system.
22
CHAPTER 1.
1.6 Manual
Now we des
ribe how to load and use the pa
kage.
1.6.1 Loading the les
The entire pa
kage
an be downloaded from the RISC
ombinatori
s home page
at the following URL http://www.ris
.uni-linz.a
.at/resear
h/
ombinat/ris
/
The user will nd the following les:
1. algUtil.ma
syma
2. shiftQuotient.ma
syma
3. poly2quint.ma
syma
4. makeGosperForm.ma
syma
5. GosperEq.ma
syma
6. Gosper.ma
syma
7. Zeilberger.ma
syma
8. LOADZeilberger.ma
syma
9. testZeilberger.ma
syma
10. testGosper.ma
syma
The entire pa
kage
an be loaded into memory by simply loading the le
LOADZeilberger.ma
syma; this le will take
are of loading the other
omponents
ex
ept the les
ontaining some examples on whi
h the system has been tested,
namely testZeilberger.ma
syma and testGosper.ma
syma.
1.6.2 The Commands
Both Gosper and Zeilberger's algorithm have been implemented in two versions:
a verbose version, whi
h allows the user to
hoose dierent levels of verbosity,
and a non-verbose version.
1.6.
23
MANUAL
Verbosity
The levels of verbosity are sele
ted by the user just appending a sux to the
ommand name (Gosper, parGosper, Zeilberger) or by passing a parameter in
the generi
verbose versions of the
ommand, whi
h is obtained by appending the
sux VerboseOpt to the
ommand name. No sux is interpreted as non-verbose.
These are the levels of verbosity that have been implemented in both algorithms:
Level
Sux
summary
normal
very
debugging
Summary
Verbose
VeryVerbose
Debugging
linsys
LinSys
Example 1.6.1.
GosperVerbose(f,k)
S ope
Example 1.6.2.
ZeilbergerVeryVerbose(f,k,n)
bose mode.
Gosper's Algorithm
Gosper(f,k)
GosperVerboseOpt(f,k,verbosity)
GosperSum(f, k, a, b)
It
omputes Pbk=a f by using Gosper to solve the indenite sum. (It only
works if the indenite sum is Gosper-summable).
GosperSumVerboseOpt(f, k, a, b, verbosity)
24
CHAPTER 1.
Zeilberger(F, k, n)
(1.5)
where the ai's are polynomials free of k and Cert (\rational
erti
ate")
is a rational fun
tion in n and k. The output will be a print-out of the
re
urren
e and the expli
it values of the polynomial parameters ai and the
\rational
erti
ate" Cert(n; k).
ZeilbergerVerboseOpt(F, k, n, verbosity)
(1.6)
where ai's are polynomials and R is a rational fun
tion (the
erti
ate), and
it yields a term [R; [a0 ; : : : ; ad ; if no su
h re
urren
e exists them it yields
[0; [dummy value; : : : ; dummy value.
parGosperVerboseOpt(F, k, n, d, verbosity)
Settings
The only setting is the environment variable MAX ORD that sets an a priori bound
on the order of the re
urren
e that Zeilberger's algorithm iteratively tries to nd
by applying parGosper with in
reasing order. The default value of MAX ORD is 3.
1.7.
25
SOME EXAMPLES
testZeilberger.ma syma.
(prompt) Gosper(1/4*k^2-1,k);
output: 2(2k1 1)
Let us now try to sum it over the interval [1; 4, i.e. evaluate P4k=1 4k 1 1
A less simple
Gosper-summable example
( 1)k k
Let us try to teles
ope 4k 1 by Gosper's algorithm:
Example 1.7.2.
(prompt) Gosper(((-1)^k*k)/(4k^2-1),k);
k
output: 4(2( k1) 1)
where
and
Cert(n; k) =
n
k
k
n k+1
26
CHAPTER 1.
and
a[0(n) = 2
a[1(n) = 1
Summing both sides of the re
urren
e and
omputing the sum is left as simple
post-pro
essing.
Assuming that the re
urren
e has order 1, we
ould have used parGosper:
(prompt) parGosper(binomial(n,k),k,n,1);
output:
k
;f
n k+1
2; 1g
(prompt) parGosper(binomial(n,k)^2,k,n,1);
output:
k2
(3 n 2 k + 3) ; f 2 (2 n + 1) ; n + 1g
(n k + 1)2
Binomial Theorem
Let us try a similar example:
Example 1.7.7.
(prompt) Zeilberger(binomial(n,k)*x^k,k,n);
output:
a[0f (n; k) + a[1f (n + 1; k) = k (Cert(n; k)f (n; k))
where
f (n; k) =
and
and
Cert(n; k) =
n k
x
k
k
n k+1
a[0(n) = (x + 1)
a[1(n) = 1
1.7.
27
SOME EXAMPLES
where
a
k
and
Cert(n; k) =
and
n k
k( n + k + b)
n k+1
a[0(n) = (n b a)
a[1(n) = (n + 1)
Example 1.7.9.
(prompt)
Zeilberger(binomial(n,k)*(n-1/4)!/(n-k-1/4)!/
(2*n+k +1/4)!*9^(-k),k,n);
output:
where
and
Cert(n; k) =
and
9k (n
(n
)! nk
1
1
4 )!(2n + k + 4 )!
1
4
a[0(n) = 28
27(3n + 2)(12n + 13)
28
CHAPTER 1.
Example 1.7.10.
(prompt)
Zeilberger(binomial(n,k)*(n-1/4)!/(n-k-1/4)!/
(2*n+k+5/4)!*9^(-k),k,n);
output:
where
and
Cert(n; k) =
and
9k (n
(n
)! nk
5
1
4 )!(2n + k + 4 )!
1
4
a[0(n) = 28
27(3n + 4)(12n + 17)
where
f (n; k) =
and
Cert(n; k) =
and
(n
n!
k!(n + k)!(n m
2k)!
1.7.
29
SOME EXAMPLES
Example 1.7.12. Spe
ial
ase of the Strehl identity (see [Str94a)
(prompt) Zeilberger(binomial(2*k,k)*binomial(n,k)^2,k,n);
output:
a[0f (n; k) + a[1f (n + 1; k) + a[2f (n + 2; k) = k (Cert(n; k)f (n; k))
where
Cert(n; k) =
and
k3 (n + 1)2 (4n 3k + 8)
(n k + 1)2(n k + 2)2
where
f (n; k) =
and
Cert(n; k) =
and
n!(n + k)!
k!3 (n k)!2
(1.7)
30
CHAPTER 1.
(prompt) parGosper(binomial(n,k)^3,k,n,1);
output: f0; f0; 0gg
This means that parGosper
ould not nd a rst order re
urren
e of the desired
form but we don't give up. Let us look for a se
ond order re
urren
e:
(prompt) parGosper(binomial(n,k)^3,k,n,2);
output:
(1.8)
where
f (n; k) =
and
4
n
k
Cert(n; k) =
k4 (n + 1)(74n6 260kn5 + 725n5 + 374k2 n4 2056kn4 + 2885n4
276k3n3 6420kn3 + 6045n3 + 104k4n2 1244k3n2 + 5298k2n2
9892kn2 + 7030n2 16k5n + 298k4n 1884k3 + 5322k2n 7520kn+
4300n 20k5 + 210k4 900k3 + 1980k2 2256k + 1080
=
(n k + 1)4(n k + 2)4
(1.9)
and
1.8.
31
THE CODE
a[0(n) =
algebrai
utilities
shift quotient
omputation
internal data stru
tures
onversions
Gosper form related routines
Gosper equation related routines
Gosper's algorithm main routines
Zeilberger's algorithm main routines
Zeilberger's routines loader
Some examples
Some Gosper's algorithm related examples
The low level routines are
ontained in the les algUtil.ma
syma, shiftQuotient.ma
syma and poly2quint.ma
syma.
The rst le
ontains the lowest level algebrai
routines for handling polynomials (extra
ting
omponents of polynomials, degree, et
).
32
CHAPTER 1.
The se
ond le
ontains routines ne
essary for
omputing the shift quotient of
a hypergeometri
term and for
omputing the result of the appli
ation of a linear
re
urren
e operator to a hypergeometri
term, whi
h is
omputed by a strategy
similar to the one used in Horner's algorithm for polynomial evaluation:
ni
eForm(hyp,var,parName,ord) :=
blo
k(
[shQuo,num,den,res,
res:parName[ord,
shQuo : shiftQuo(hyp,n),
for i : ord step -1 thru 1 do
res : xthru(parName[i-1 +
shiftFa
tPoly(shQuo,n,i-1)*res),
return(res)
);
The third le
ontains the routines ne
essary for storing polynomials in spe
ial
data stru
tures; namely quintuples that are well-suited for building the desired
Gosper form of the shift quotient of a proper hypergeometri
term. Su
h quintuples are arrays in whi
h the following information of a polynomial is stored:
degree
leading
oe
ient
se
ond leading
oe
ient
tail (polynomial without the rst two monomials)
multipli
ity (number of o
urren
es) of the polynomial in the shift quotient
Example 1.8.1.
All the Gosper form (1.2) related routines are in makeGosperForm.ma
syma. The
main routine builds the desired form by
he
king iteratively the g
d
ondition
required by the Gosper form. Whenever the
ondition is violated the undesired
fa
tors will be moved from the polynomials q and r to the polynomial p. This
pro
edure exploits the ad ho
data stru
ture quintuple, whi
h has been
oded
in poly2quint.ma
syma. A detailed des
ription of this pro
ess is treated in
Chapter 4.
1.8.
THE CODE
33
The
omputation of the degree of the solution and the solution of the Gosper
equation (1.3) has been
oded in the le GosperEq.ma
syma. Solving is done by
simple linear algebra on the unknown
oe
ients of the solution.
1.8.4 Gosper's and Zeilberger's Algorithm
Gosper's and Zeilberger's algorithm have been
oded in two versions (verbose
and non-verbose) in the le Gosper.ma
syma.
Zeilberger's fast algorithm is a parametrized version of Gosper's algorithm,
in whi
h the linear solving of the re
urren
e equation is done with polynomial
parameters.
The
oding follows in a straightforward way Gosper's algorithm as des
ribed
in the previous se
tions.
34
CHAPTER 1.
Part II
Solving Systems of Linear
Equations by Interpolation
35
Chapter 2
Cramer Driven Interpolation
2.2 Notation
In the following K will be a eld
ontaining Q and A an m n matrix with
entries over K , with m n.
Let us denote the entries of A with ai;j , for 1 i m and 1 j n, i.e.
0
A=
Denition 2.2.1.
B
B
B
B
1
C
C
C:
C
A
(2.1)
38
CHAPTER 2.
A, as the matrix:
A=
B
B
B
B
1
C
C
C:
C
A
(2.2)
For any given m s matrix M and any
olumn ve
tor b with s entries, we
denote by M jb the m (s + 1) matrix obtained by appending the ve
tor b to M .
Denition 2.2.2. We dene by L(A) the matrix obtained from A by removing
its last
olumn and by R(A) the last
olumn of A.
In the following we will refer to Gaussian elimination applied on a matrix as
to any pro
ess that produ
es a (lower or upper) triangular matrix by operations
that do not
hange the solutions of the
orresponding system of linear equations.
In pra
ti
e when using homomorphi
images the
hoi
e of the matrix should be
done in a way that makes it very likely to have images that
an be used for
re
onstru
ting the solutions of the system (see Remark 2.4.2).
Denition 2.2.3. For any matrix M we dene the triangular form of M , denoted
by (M ), to be the matrix obtained from M by performing Gaussian elimination
on it.
Denition 2.2.4. Given a matrix M 2 K m;s and a
olumn ve
tor with m
omponents, we
all the i-th Cramer matrix of M with respe
t to b, denoted by
Ci (M; b), the matrix obtained from M by substituting the i-th
olumn with b,
for 1 i s.
Example 2.2.1.
Let us
onsider
Then
0 1
2 4 51
6
A = 7 0 3 A; b = 2 A
1 1 2
0
0 1
2 41
5
A
L(A) = 7 0 ; R(A) = 3 A ;
1 1
2
6 4 51
C1 (A; b) = 2 0 3 A :
0 1 2
(2.3)
(2.4)
2.4.
39
RATIONAL COEFFICIENTS
Ax = 0;
(2.5)
(2.6)
where b is a
olumn ve
tor obtained by taking the opposite of the last
olumn of
A, i.e. its
omponent i-th
omponent is ai;n , for all 1 i m.
A solution to (2.6) gives us the remaining n 1
omponents of the solution
to (2.5) whose last
omponent is 1. All the other solutions will be multiples.
We now fa
e the problem of solving an overdetermined system of inhomogeneous linear equations of maximal rank.
xr
mod m;
(2.7)
0 r < m:
(2.8)
We
onsider an elementary result1 whi
h tells us how to re
over an integer
solution from a modular one.
Denition 2.4.1.
1 For
r;
r m;
if r < m=2,
otherwise.
(2.9)
a more detailed study of the solutions to integer
ongruen
es we refer to [Lip81, pages
243{251.
40
CHAPTER 2.
mod m;
0r<m
(2.10)
(2.11)
(2.12)
Clearly the denition of m (r) (2.9) gives a solution in the desired range.
Let us now denote by s1 and s2 two solutions of (2.10) in the range given by (2.11).
Therefore we have
s1 s2 mod m:
(2.13)
If they were not equal, we
ould assume, without loss of generality, 0 s1 <
s2 < m and therefore we would have
0 < s2 s1 < m;
(2.14)
but then, by (2.13), we would also have that s2 s1 is a multiple of m, whi
h
ontradi
ts (2.14).
Remark 2.4.1. The fun
tion m des
ribes the least positive solution to the
ongruen
e (2.10). Su
h a fun
tion is ne
essary when re
onstru
ting possibly
negative integer solutions for whi
h only a bound on the absolute value is known.
Proof.
2.4.1 Denitions
Now let us assume that the eld K is the eld Q of the rational numbers.
For a given matrix M 2 Q m;n with m n and a given prime p su
h that
it does not divide any of the denominators of the entries of M , we denote by
modp(M ) the matrix obtained from M by taking its entries modulo p.
In the following we will always
onsider primes that do not divide any of the
denominators of the entries in the
onsidered matrix.
We
onsider those primes p su
h that, for 1 i n
det(L( (p) )) 6= 0;
det(L( (p) )) = modp(det(L( )));
det(Ci(L( (p) ); R( (p) ))) = modp(det(Ci(L( ); R( ))));
(2.15)
2.4.
41
RATIONAL COEFFICIENTS
where
= (M );
(p) = (modp (M )):
(2.16)
xi
di(pj )
;
d(pj )
1 i n 1;
(2.20)
42
CHAPTER 2.
where xpi j is the i-th
omponent of the solution modulo pj of the system
orresponding to modpj (A0jb).
Moreover, if the primes pj are lu
ky for A0 jb, then by (2.15), we must also
have:
d(pj ) d
mod pj ;
(2.21)
d(ipj ) di
mod pj ;
(2.22)
z d(pj )
mod pj 1 j l;
(2.23)
zi di(pj )
mod pj 1 j l;
(2.24)
and
for 1 j l and 1 i n 1.
We now
onsider the following Chinese remainder problems:
and
for 1 i n 1.
By the Chinese remainder theorem (see [Win96 and Appendix A) we
an
solve the systems of
ongruen
es (2.23) and (2.24). Therefore
Ql we would nd a
non-negative integer solution d to (2.23) with 0 dQi < j=1 pj and the nonnegative integer solutions di to (2.24) with 0 di < lj=1 pj .
We
onsider the system of
ongruen
es
y d
with
and
l
Y
j =1
l
Y
j =1
j =1
j =1
mod
j =1
l
Y
j =1
pj ) =2;
(2.26)
(2.27)
pj ;
l
Y
pj )=2 yi < (
(2.25)
pj ;
l
Y
for 1 i n 1.
We noti
e that by (2.17) we have
l
Y
l
Y
pj ) =2 y < (
yi di
with
mod
j =1
pj ) =2
(2.28)
j);
(2.29)
2.4.
43
RATIONAL COEFFICIENTS
and that d and di are solutions respe
tively of (2.25) and (2.27). Therefore
Theorem 2.4.1 guarantees the existen
e and uniqueness of the solution to (2.25)
and (2.27) whi
h must then be respe
tively d and di.
The
omponents of the solution to (2.6) are obtained by Cramer's rule.
Example 2.4.1.
2
B 1
mod89(Ajb) = B
4
3
3
1
87
4
84
85
3
8
31
2C
C
2A
5
2
B 0
B
0
0
3
46
81
44
84
62
13
43
3 1
46 C
C
85 A
45
(2.32)
2 3 84 3 1 0 2 3 84 3 1
B 0 46 62 46 C
B 0 46 62 46 C
B
C
C
B
0 0 47 4 A :
0 0 47 4 A
0 0 34 1
0 0 0 0
By ba
k-substitution in Z89 we get
x1 = 32; x2 = 12; x3 = 55:
(2.33)
The determinant in Z89 is given the produ
t of the diagonal elements:
d0 = mod89 (det(A)) = 52:
(2.34)
Using Cramer's rule (2.20) we get that the numerators in Z89 of the
omponents of the solution are:
y^1 = x1 d0 = 32 52 62
mod 89;
(2.35)
0
y^2 = x2 d = 12 52 1
mod 89;
(2.36)
y^3 = x3 d0 = 55 52 12
mod 89:
(2.37)
(2.38)
0
44
CHAPTER 2.
(2.40)
mation about the spe
i
problem, a reasonable bound for the absolute value of
the determinant is given in most
ases by the Hadamard bound.
Denition 2.4.2. For a given matrix A 2 Q n;n , the Hadamard bound, denoted
by H (A), for the absolute value of the determinant of A is given by
H (A) =
n
Y
jjAijj2;
(2.41)
1 2 ;
3 5
(2.42)
i=1
A=
we have
det(A) = 11; H (A) = jj( 1; 2)jj2 jj(3; 5)jj2 = (1 + 4)1=2 (9 + 25)1=2 ' 11:66:
(2.43)
Remark 2.4.3. Sin
e for any matrix A we have jAj = jAT j, we
an get a sharper
bound by taking the minimum of the Hadamard bounds for both the matrix and
its transpose.
For a re
tangular matrix A 2 Q m;n , with m > n a bound is obtained by taking
the maximum of the Hadamard bounds for all possible minors of size n n.
2.5.
RATIONAL FUNCTIONS
45
Let us now
onsider the
ase when the eld K is the eld Q (y) of univariate
rational fun
tions over the rationals.
The notations evalx(M ) and A(x), with x 2 Q and su
h that it is not a root
of any of the denominators of the entries of M , denote the matrix obtained from
M by substituting y by x.
In the following we will always
onsider rational values x su
h that they do
not divide any of the denominators of the entries of the
onsidered matrix.
For any given matrix A we
onsider the evaluation homomorphisms with
respe
t to the upper determinant of the triangular form, obtained by substituting
the variable with rational values. We
onsider the rationals x su
h that, for
1 i n, the following holds:
det(L(x )) 6= 0;
det(L(x )) = evalx(det(L( )));
det(Ci(L(x ); R(x))) = evalx(det(Ci(L( ); R( ))));
where we have used the following abbreviations
:= (M );
x := (M (x)):
We
all \lu
ky" those rationals x for whi
h (2.44) holds.
2.5.2 Interpolation
(2.44)
(2.45)
46
CHAPTER 2.
n
Y
i=1
jjMi(x)jj2
n
Y
i=1
jjMi(x)jj1; x 2 Q ;
(2.48)
n
X
i=1
n
X
i=1
n
X
j =1
i=1
n
X
i=1
deg( jmi;j j) =
deg(jjMi(x)jj1) =
max (deg(mi;j ));
(2.49)
j =1;:::;n
where mi;j is the element of M in the i-th row and j -th
olumn.
This is generalized to the upper determinant of a matrix by simply taking all
possible determinants of submatri
es of size n n.
Then for a re
tangular matrix A 2 Q m;n a bound on the degree of the determinant of A is also given by:
m
X
i=1
j =1;:::;n
Example 2.5.1.
n 1
n2
3
n + 2n n + 5
(2.50)
2.6.
DISTRIBUTED COMPUTATION
47
The modular approa
h and the interpolation approa
h
an work together when
working on matri
es with entries in Q (y1 ; : : : ; ys). For ea
h indeterminate and
for the ground eld Q we
an re
ursively re
onstru
t d, d1, d2,..., dn 1 by interpolation over ea
h indeterminate and by the Chinese remainder theorem over
Q.
48
CHAPTER 2.
d(1); d1(1); dn
mod
1(1)
p (A0jb)
l
d(l); d1(l); dn
Gaussian
Elimination
1(l )
dn
dn
2.7.
THE PACKAGE
49
Example 2.7.1 and Example 2.7.2 are related to the systems that are solved
in Zeilberger's algorithm for denite hypergeometri
summation (see Algorithm
1.2 in the rst
hapter).
Solving Linear Systems at One Point
Command
Parameters
Semanti s
50
CHAPTER 2.
Example 2.7.1.
2n 1
n2 + 1 A
n2 + 2n
(2.52)
Parameters
Semanti s
2.8.
CONCLUSION
51
okay
okay
of primes)
The method requires the dete
tion of unlu
ky
ases
Too many homomorphi
images are
omputed (see explanation in the next
paragraph)
52
CHAPTER 2.
Chapter 3
Rational Interpolation
54
CHAPTER 3.
RATIONAL INTERPOLATION
For the proofs and more details we refer to [GvzG99, pages 106{115.
3.3.
CAUCHY INTERPOLATION
55
Example 3.3.1.
Let us take F = Z5 and let us nd the rational fun
tions = r=t 2 Z5 su
h that
(0) = 1;
(1) = 2;
(2) = 4:
56
CHAPTER 3.
RATIONAL INTERPOLATION
x2 + x + 2
2
x+2
r2 =t2 =
2x + 2 ;
1
r3 =t3 = 2 :
2x + 1
(3.5)
Corollary 3.3.3. There is an algorithm the de
ides whether the problem (3.2)
has a solution, and if so, it
omputes it in O(n2 ) arithmeti
operations in F .
3.5.
Proof.
57
Corollary 3.4.2. There is an algorithm that de
ides whether (3.6) has a solution,
and if so, it
omputes it in O(n2 ) arithmeti
operations in F .
58
CHAPTER 3.
RATIONAL INTERPOLATION
We des
ribe a re
ursive method that improves the previous heuristi
method.
Su
h improved heuristi
re
onstru
ts rst those
omponents that require few
evaluations to stabilize, then plugs their values into the system in order to simplify
it and re
ursively re
onstru
ts the remaining
omponents in the simplied system.
I implemented this method in the pa
kage RatNullSpa
e.m whi
h is des
ribed
in this
hapter (see CompleteNullSpa
e).
3.5.4 A Hybrid Method
An ever faster method is to use the heuristi
method only for those
omponents
that require few evaluations to stabilize. On
e these
omponents have been
omputed their values
an be plugged in into the original system in order to simplify
it. Then the simplied system
an be solved by a symboli
algorithm. This
method generalizes the work in [RZ. I implemented this method in the pa
kage
RatNullSpa
e.m, whi
h is des
ribed in this
hapter (see RatNullSpa
e).
This method
an be sped up by putting into the system extra information on
the degree of the
omponents of the solutions.
Bla
k Lists
3.6.
THE PACKAGE
59
nents into a bla
k list. These
omponents will be
omputed symboli
ally.
Delayed Interpolation
60
CHAPTER 3.
RATIONAL INTERPOLATION
A
omponent is given the
onventional value "?" meaning non-
omputed when
either it
annot be
omputed be
ause of too few interpolating points or the user
desires not to
ompute it.
The
ommand InterpolatingRatFun
tion provides univariate rational fun
tion interpolation.
Example 3.6.1, 3.6.2, 3.6.3 and 3.6.4 are related to the systems that are
solved in Zeilberger's algorithm for denite hypergeometri
summation (see Algorithm 1.2 in the rst
hapter).
3.6.2 Modular Null Spa
e Computation
Commands
ModularNullSpa
e[
oefs
MultiModularNullSpa
e[
oefs
Parameter
oefs
ontains the matrix whose null spa
e has to be
omputed.
Options
Name
StartingInterpolation
Offset
DegreeBound
Var
Verbose
Algorithm
Bla
kList
Semanti s
Default Value
3
3
6
0 (not dened)
O
NullSpa
e
fg
3.6.
61
THE PACKAGE
Offset
A Univariate Example
Let us
ompute the null spa
e of the following matrix with univariate polynomial
entries:
Example 3.6.1.
1
n3 + 2
n 2
4n + 1 1
2n 2
0
2n + 2
n2 + 1 A
A=
(3.9)
2
2
2
2
n + 2n + 1 n + 2n + 1 n 2n 1 n 2n 1
This
an be done ModularNullSpa
e. Let us try to re
onstru
t the
omponents by using at most 5 interpolating points:
ModularNullSpa
e[A, DegreeBound -> 5
Output =
ff?; 1 +2 n ; ?; 1gg
(3.10)
Two
omponents are left without a value. Trying with an extra point yields
the
omplete solution:
ModularNullSpa
e[A, DegreeBound -> 6
Output =
2
3
4
3
4
ff 6 + 7n2(+ n1 ++nn) + n ; 1 +2 n ; 5 +2(9n +1 +n n+) n ; 1gg
(3.11)
62
CHAPTER 3.
RATIONAL INTERPOLATION
A Multivariate Example
Let us now
onsider the following matrix with bivariate polynomial entries:
0
1 m+n 0 m+1 1
0 2n + 2 0 A
A= 2
(3.12)
m
0
0
n
We
an nd the null spa
e of A by either the
ommand ModularNullSpa
e
or by the
ommand MultiModularNullSpa
e.
Example 3.6.2.
or
MultiModularNullSpa
e[A, DegreeBound -> 6
Output =
2
ff mn ; mm2 +mmn+ n ; m(1n+ n) ; 1gg
(3.13)
Parameters
Options
Name
Verbose
Algorithm
Semanti s
Default Value
O
NullSpa
e
3.6.
63
THE PACKAGE
Example 3.6.3.
(3.14)
Output =
ff 11 +2nn ; ?; ?; 1gg
(3.15)
Then we
an use this result to nd the remaining
omponents by the
ommand
CompleteNullSpa
e:
CompleteNullSpa
e[A,ms
Output =
2
3
4
2
3
ff 1 +22nn(1 +2n3n + 2nn2 ) + n ; 1 2(3n 1 +5nn)n+ n ; 1gg
HybridNullSpa
e[
oefs
MultiHybridNullSpa
e[
oefs
RatNullSpa
e[
oefs
Parameter
oefs
ontains the matrix whose null spa
e has to be
omputed.
(3.16)
64
CHAPTER 3.
Options
Name
RATIONAL INTERPOLATION
Default Value
O
NullSpa
e
NullSpa
e
3
3
6
0 (not dened)
fg
Verbose
ModularAlgorithm
Symboli
Algorithm
StartingInterpolation
Offset
DegreeBound
Var
Bla
kList
Semanti s
StartingInterpolation
Example 3.6.4.
0
BB
BB
6n 9
15n2 + 4n + 3
3
0
0
0
3n 1
7n2 + n + 6
0
0
0
2
n+1
0
0
2
3n + 1
6
0
2
3n
+1
3n 3
3n 3
n
1
C
C
C
C
A
(3.17)
3.6.
65
THE PACKAGE
We
an nd its null spa
e by any of the null spa
e algorithms that use the hybrid
method:
RatNullSpa
e[A
Output=
ff
71n + 33n2 );
(3.18)
k=0
One possible way to obtain the matrix is to run parGosperLinSys in the Maxima implementation of Zeilberger's algorithm, whi
h performs Zeilberger's algorithm with verbose linear system solving. For more details on how Zeilberger's
algorithm works we refer to the rst
hapter of this thesis and to [Car99, [PS95,
[Zei90, [Zei91.
On
e we have the matrix, say, in b5
oefs we
an nd its null spa
e in 37:69s
as follows:
HybridNullSpa
e[b5
oefs,
Bla
kList -> {2, 3, 4, 5, 6, 7, 8, 9, 10}
Output =
66
CHAPTER 3.
RATIONAL INTERPOLATION
The same
ommand not followed by the
ommand Together, whi
h takes
are of adding up rational fun
tions, produ
es a
rash of Mathemati
a 4.0.
3.6.5 Rational Fun
tion Interpolation
Parameters
Semanti s
Example 3.6.6.
x 1
;
x2 + 3
(3.21)
Output =
2
2
3
f 556 + 766x1596233x + 23x ; 9 3++1023x x x ; 3 1++x2x g
(3.23)
3.7.
67
CONCLUSION
The result
ontains f but also other rational fun
tions that interpolate the
points in (3.22) but have numerator and denominator with dierent degrees.
If we knew the degree of the numerator of f we
ould
hoose the
orre
t
answer. Otherwise we
an try to guess it with very high probability by taking
into a
ount extra points and taking those solutions that are both in the old and
new set of interpolants.
Let us take for instan
e
1
f (5) = :
(3.24)
7
Then we get
InterpolatingRatFun
tion[
{{1,0},{2,1/7},{3,1/6},{4,3/19},{5,1/7}},3,x
Output =
82x 15x2 + x3 ; 1 + x g
f 68 +28(3
+ 4x)
3 + x2
(3.25)
We see that f = ( 1 + x)=(3 + x2 ) is the only rational fun
tion
ontained in
both solution sets ((3.23),(3.25)).
68
CHAPTER 3.
RATIONAL INTERPOLATION
Chapter 4
Linear Systems in Zeilberger's
Algorithm
Throughout this se
tion n, s are xed positive integers with s 6= 0, n 2s, and
is a given subset of f1; : : : ; ng. We use the following notation:
69
70
CHAPTER 4.
(4.1)
Pi
torially:
C (H )=A(H )[B (H )
}|
1; 2; : : : ; s; s + 1; s + {z2; : : : ; n
| {z } |
A(H )=H \
B (H )=H \
s}; n| s + 1; n {z s + 2; : : : ; n}
D(H )=H \
H : fs + 1; : : : ; ng n (H + s) ! fs + 1; : : : ; ng n H;
(4.2)
as follows:
If H is the empty set, we take the identity fun
tion
; (i) = i;
(4.3)
for all i 2 dom H .
If H is not the empty set, we take for all i 2 dom H
(
(i);
if i 2 (fs + 1; : : : ; ng n (H + s)) n H1nfag (a); (4.4)
H (i) = H nfag
H nfag (a + s); if i = H1nfag (a);
where a denotes the minimum element in H with respe
t to the natural ordering.
Example 4.2.1 des
ribes the fun
tion H for n = 9, s = 3 and H = f5; 6g.
4.2.
71
(4.5)
Proof.
H1nfag(a)
H nfag(a + s)
a+s
The
ondition (4.5) holds by the indu
tion hypothesis for i 6= H1nfag (a).
When i = H1nfag (a) we have that by denition of inverse and by the indu
tion
hypothesis
72
CHAPTER 4.
(4.7)
=a
Example 4.2.1.
n = 9, s = 3, H = f5; 6g:
4
1
4
1
5
2
5
2
6
3
6
3
7
4
7
4
8
5
8
5
7 8 9
H
f5g
9 10 11 12
6 7 8 9
9 10 11 12
6 7 8 9
H
9 10 11 12
f5; 6g
(4.9)
4.2.
73
= min
(l j i + l s 2 fs + 1; : : : ; ng n H ):
l2N
(4.10)
Proof.
(4.16)
(4.17)
where
{z
}
=H nfag (a+s)
l2N
74
CHAPTER 4.
Pi torially:
H nfag(a + s)
1
H1nfag(a)
l1
a+s
l2
The following lemma and theorem generalize the previous theorems respe
tively
to the
ase H f1; : : : ; n sg and to the
ase H f1; : : : ; ng.
Denition 4.2.2. Given n; s 2 N , s 6= 0, su
h that n 2s, and H f1; : : : ; n
sg, we dene the fun
tion H to be the following restri
tion of H :
H = B(H ) dom (B H )n(A(H )+s) :
(4.18)
(
H (i) i = mi s:
(4.19)
H : fs + 1; : : : ; ng n (H + s) ! R;
(4.20)
R fs + 1; : : : ; ng n H;
(4.21)
The fun
tion H is a bije
tion that satises the
ondition (4.19) be
ause
it is a restri
tion of B(H ) .
It is dened over fs + 1; : : : ; ng n (H + s) be
ause B(H ) is dened over fs +
1; : : : ; ng n (B (H ) + s).
Its image is a subset of fs + 1; : : : ; ng n H be
ause the image of B(H ) is
fs + 1; : : : ; ng n B (H ) and H is a restri
tion of H .
Proof.
4.2.
75
Example 4.2.2.
n = 6, s = 2
f3g
f2 ; 3 g
3 4 5 6 7 8
3 4 5 6 7
In the se
ond
ase we have: A(H ) = f2g and B (H ) = f3g.
(4.22)
1
( )
The fun
tion H is a bije
tion that satises the
ondition (4.27) be
ause
it is a restri
tion of C (H ).
We noti
e that H is then dened over
(fs + 1; : : : ; ng n (C (H ) + s)) n C 1(H ) (D (H ))
whi
h has
ardinality
n s jC (H )j jD (H )j:
Proof.
76
CHAPTER 4.
Example 4.2.3.
n = 6, s = 2:
f2; 4g
f2; 4; 5; 6g
3 4 5 6 7 8
3 4 5 6 7 8
In the se
ond
ase we have: C (H ) = f2; 4g, D(H ) = f5; 6g and D (H ) = f5g.
4.2.4 Some Useful Properties
Property 4.2.5. Given n; s 2 N , s =
6 0, su
h that n 2s, and H f1; : : : ; ng.
The bije
tive fun
tion H is su
h that for any i 2 dom( H ), H (i) i is the
minimum non-negative multiple of s, i. e. we have
H
Proof.
(i)
s
= min
(l j i + l s 2 im( H )):
l2N
(4.28)
is a restri tion of H .
(j ) = mj s:
(4.29)
The proof follows from (4.19). In fa
t for any j 2 im( H ) we have
1
1
(4.30)
H ( H (j ))
H (j ) = lj s;
|
{z
}
j
Proof.
=j
4.2.
77
4.2.5 Cardinality
H.
We have
(4.32)
Example 4.2.4.
n = 11, s = 3, H = f3; 5; 6; 9; 10g:
7 8 9 10 11
9 10 11 12 13 14
78
CHAPTER 4.
j(H )j = s i f1; : : : ; ng = H:
(4.37)
The fa
t that 0 j(H )j s follows immediately from the denition of
have that
(4.38)
We now prove that H is the bije
tion between a subset of fs +1; : : : ; ngn (H + s)
and a subset of fs +1; : : : ; ngn H su
h that
ondition (4.27) holds, whose domain
and image have the largest possible
ardinality.
Theorem 4.2.9. Given n; s 2 N , s 6= 0, su
h that n 2s, and H f1; : : : ; ng.
There exists no bije
tion H : M ! N where
M fs + 1; : : : ; ng n (H + s);
(4.39)
N fs + 1; : : : ; ng n H;
su
h that for any i 2 P , there exists a non-negative integer mi su
h that
H (i) i = mi s:
(4.40)
and dom( H ) ( M .
4.3.
79
We noti
e that
dom( H ) = (fs + 1; : : : ; ng n (H + s)) n C 1(H ) (D (H )):
(4.41)
We show that there
annot be a bije
tion H : M ! N su
h that the
ondition
(4.40) holds and su
h that M fs + 1;1: : : ; ng n (H + s), N fs + 1; : : : ; ng n H
and that has any of the elements in C (H ) (D (H )) in its domain.
If this were not
the
ase, by Property 4.2.5 and by the fa
t that for any
1
i 2 D(H ), H (C (H ) (i)) 6= i, we would also have
H (C 1(H ) (i)) > C (H ) (C 1(H ) (i)) = i:
(4.42)
By (4.40) we have
H (C 1(H ) (i)) C 1(H ) (i) = m s;
(4.43)
where m is a non-negative integer.
By Property 4.2.6 on the inverse fun
tion
i C 1(H ) (i) = l s;
(4.44)
where l is a non-negative integer.
Therefore from (4.42) we have
H (C 1(H ) (i)) i + s;
(4.45)
whi
h is impossible be
ause i n s + 1 sin
e i 2 D (H ).
Proof.
Example 4.2.5.
n = 7, s = 2 and H = f1; 4; 6g:
5 6 7 8 9
minimal distan
e
Here we have C (H ) = f1; 4g, D(H ) = D (H ) = f6g.
80
CHAPTER 4.
with p1 (n; k); p2(n; k) 2 Q [n; k su
h that g
d(p1(n; k); p2(n; k)) = 1, we have
num f (n; k) = p1 (n; k); den f (n; k) = p2(n; k):
(4.52)
For the sole purpose of studying the degree it su
es to
onsider numerators
and denominators dened up to multipli
ative
onstant
oe
ients.
4.3.
81
Denition 4.3.3. We dene a proper hypergeometri
term F (n; k) to be nregular (k-regular) in n if and only if the numerator and the denominator of its
shift quotient in n (respe
tively in k) have the same degree in n, i.e.
and
(4.53)
(4.54)
respe
tively.
We dene non-n-regular (non-k-regular) in n any term whi
h does not satisfy
(4.53) ((4.54) respe
tively).
The Binomial
Coe
ient
n
The binomial
oe
ient k is n-regular in n but it is non-k-regular in n. In fa
t
we have:
(4.55)
Qn( nk ) = n n +k +1 1
and
(4.56)
Qk ( nk ) = nk + k1 :
Example 4.3.2. Rational Fun
tions
Any rational fun
tion F (n; k) = p1(n; k)=p2(n; k), with p1 ; p2 2 Q [n; k is both
n-regular in n and k-regular in n. In fa
t we have:
k)
p1 (n + 1; k) p2 (n; k)
Qn( pp1((n;
)
=
(4.57)
p2 (n + 1; k) p1 (n; k)
2 n; k )
and
p1 (n; k + 1) p2 (n; k)
k)
)
=
:
(4.58)
Qk ( pp1((n;
p2 (n; k + 1) p1 (n; k)
2 n; k )
Example 4.3.3. The Fa
torial Fun
tion
The fa
torial term F (n; k) = n! is trivially k-regular in n but non-n-regular in n.
In fa
t
(4.59)
Qn(n!) = (n +n! 1)! = n + 1:
Example 4.3.1.
With the next theorem and
orollary we prove that the degree in n of some
polynomials involved in Zeilberger's algorithm
an be bounded in a way whi
h
is independent of the order d of the re
urren
e. We do this by interpreting the
abstra
t model des
ribed in the previous se
tion in terms of fa
tors of polynomials
breaking a
ertain
ondition.
82
CHAPTER 4.
i 1
Y
j =0
(f + j ); for i > 0;
= (f
j =0
j );
for i > 0;
(4.61)
j 2U
Proof.
i 1
Y
f 0 = 1:
i2A
(4.62)
(4.63)
Q
(u n + v k + w )!
(
a
n
+
b
k
+
+
a
)!
i
i
i
i
Qn(F^ (n; k)) = Q i2A (u n + v k + w + u )! Qj2U (aj n + bj k +
j)!
j
j
j
j
i
i
i
j 2U
Q i2A
Q
(u n + v k + w )!
Q i2A ((uainn++vbikk ++ w
i ++aui)!)! Qj2U (aj n + bj k +
j)! =
j
j
j
j
i
i
i
j 2U
i2A
Q
Q
a
i
(
uj n + vj k + wj )uj
(
ai n + bi k +
i + 1)
j
2U
i
2A
= Q (u n + v k + w + 1)uj Q (a n + b k +
)ai :
j
j
j
i
i
i
j 2U
i2A
(4.64)
Taking the denominator
ompletes the proof.
Q
In the following we will refer to the linear fa
tors in n and k of den Qn(F^ (n; k)),
i.e. those linear fa
tors in n in k from
Y
Y
(uj n + vj k + wj + 1)uj (ain + bik +
i )ai
j 2U +
i2A
that are not
an
eled in Q(F^ (n; k)), simply as linear fa
tors of den Qn(F^ (n; k)).
We will refer to the
fa
tors
of
N h den Qn (F^ (n; k)), for h = 0; 1; : : : ; d 1,
Qd linear
as linear fa
tors of h=01 (N h den Qn(F^ (n; k))).
4.3.
83
and
1:
2:
3:
4:
(4.65)
(4.66)
for all j 1, j 2 N .
i := 0;
p0 (n; k) := 1;
q0 (n; k) := a(n; k);
r0 (n; k) := b(n; k 1).
while there exists j 2 N su
h that
g
d(qi(n; k); ri(n; k + j )) = f (n; k) 6= 1;
do
qi+1 (n; k) := qi (n; k)=f (n; k);
ri+1 (n; k) := ri (n; k)=f (n; k j + 1);
pi+1 (n; k) := pi (n; k) f (n; k 1)j 1 ;
i := i + 1.
return (pi (n; k); qi (n; k); ri (n; k))
(4.67)
84
CHAPTER 4.
and su h that
(4.68)
(4.69)
(4.72)
4.3.
where
j 2U +
85
(4.73)
t(n; k) :=
dY1
h=0
(4.74)
su h that
X
j 2U +
Proof.
jvj j +
j;d
Y
Y A
j 2U + s=1
i;d
Y
Y B
i2A t=1
X
i2A
(4.76)
jbi j;
(uj n + vj k + wj + fj;s)
(ai n + bi k + i + 1
(4.75)
gi;t );
(4.77)
where Aj;d, Bi;d are non-negative integers and fj;s, gj;t are non-negative distin
t
integers su
h that
1 fj;s d uj ; 1 gi;t d jaij:
Choosing d M (F (n; k)) (4.73) guarantees
d uj 2 jvj j; 8j 2 U + ;
(4.78)
and
d jai j 2 jbi j; 8i 2 A :
(4.79)
Hen
e, if we ex
lude the trivial
ases vj = 0 and bi = 0, we are under the
hypotheses of Theorem 4.2.7 and Theorem 4.2.8 whi
h guarantee that for ea
h
fa
tor (ai n + bi k +
i)dai , i 2 A and (uj n + vj k + wj )duj , j 2 U +, respe
tively at
most jbij and jvj j linear fa
tors satisfy the
ondition in (4.75). Therefore a bound
for the number
of linear fa
tors in Kt(n; k) that do not violate the
ondition
(4.75), is Pj2U jvj j + Pi2A jbi j.
+
86
CHAPTER 4.
Example 4.3.4.
If we take
F (n; k) =
(2n + k 1)! ;
(4n + 2k)!
and d = 2 we have:
(4n + 2k)! =
Qn(F^ (n; k)) = Qn(F (n; k)) = (4(2nn++2kk++1)!
4)! (2n + k 1)!
= (4n + 2k + 1)2(4n2+n +2kk+ 3)(4n + 2k + 4) :
(4.80)
Therefore
t(n; k) = 4(4n + 2k + 1)(4n + 2k + 3)(4n + 2k + 4)
(4.81)
(4n + 2k + 5)(4n + 2k + 7)(4n + 2k + 8);
where
dY1
t(n; k) := (N h den Qn (F^ (n; k)));
(4.82)
h=0
and
Qk (1=t(n; k)) =
(4.83)
1)(X + 3)(X + 4)(X + 5)(X + 7)(X + 8) :
= ((XX ++3)(
X + 4)(X + 6)(X + 7)(X + 9)(X + 10)
where X = 4n + 2k.
The violations of the Gosper
ondition (in
luding
an
ellations) between fa
tors in the numerator and denominator of
t(n; k)
Qk (1=t(n; k)) = Kt
(4.84)
(n; k) ;
are shown in the following diagram des
ribing H , dened in Denition 4.2.3,
with H = f2; 6g, n = 8 and s = 2:
1
10
4.3.
87
The set H = f2; 6g des
ribes the missing fa
tors in t(n; k) (i.e. 4n + 2k + 2,
4n + 2k + 6). The
ir
led integers are the elements of the sets
(f1; : : : ; ng n H ) n im ( H );
(4.85)
and
(4.87)
d
X
i=0
d
X
zi (n)N i )F (n; k) =(
i=0
Qd
1
i=0
Proof.
i 1
Y
j =0
N j num Q^ n
xk F^ (n; k):
^
( den Qn)
d 1
Y
j =i
N j den Q^ n )
Ni
(4.88)
We noti e that
NF (n; k)
F (n; k)
(4.89)
88
CHAPTER 4.
d
X
i=0
=(
zi (n)
d
X
i=0
d
X
Ni
)F (n; k) = (
zi ( n )
i 1
Y
Nj
j =0
N iP
d
X
i=0
zi (n)
i 1
Y
j =0
N j Qn )F (n; k) =
NP (n; k) j ^
N Qn )F (n; k) =
P (n; k)
i 1
(n; k) Y
num Q^ n )F (n; k) =
Nj
P (n; k) j =0 den Q^ n
i=0
d
i 1
X
Y
^
i
= ( zi (n)N P (n; k) N j num Q^ n ) xk F^ (n; k) =
den Qn
i=0
j =0
=(
=(
d
X
i=0
Qd
zi (n)
1
i=0
i 1
Y
j =0
N j num Q^ n
xk F^ (n; k):
^
( den Qn)
d 1
Y
j =i
(4.90)
N j den Q^ n )
Ni
j 2U +
(4.91)
then the Gosper form (p(n; k); q (n; k); r(n; k)) of Qk (LF (n; k)), will be su
h that
the degrees of q (n; k) and r(n; k) in n are bounded by
X
X
degn(num(Q^ k )) + ( jvj j + jbij);
and
j 2U
i2A
X
X
degn(den(Q^ k )) + ( jvj j + jbi j);
j 2U +
respe tively.
i2A
(4.92)
(4.93)
From Lemma 4.88 and from the distributivity of the shift quotient we
have that
dY1
i 1
d
Y
X
Qk (LF (n; k)) = Qk ( zi (n)(N i P (n; k)) N j num Q^ n N j den Q^ n )
j =i
j =0
i=0
(4.94)
dY1
Qk (1=( N h den Q^ n)) x Q^ k ;
Proof.
h=0
4.3.
89
to the
Qk (1=(Qdh=01 N h den Q^ n)), by Theorem 4.3.3,
ontributes
P
P degree in
n of q (n; k) and r(n; k) by a degree bounded by j 2U jvj j + i2A jbi j;
+
xQ^ k gives a ontribution to q(n; k) and r(n; k) with degree in n respe tively
90
CHAPTER 4.
p0 (n; k) =
d 1
X
i=0
i 1
Y
j =0
N j den Q^ n
dY1
j =i
N j num Q^ n ;
(4.98)
4.3.
91
(4.103)
By Lemma 4.3.6, the fa
t that F (n; k) is non-k-regular in n guarantees
that the right hand side of the Gosper equation (4.71), i.e.q(n; k + 1)y(n; k)
r(n; k)y (n; k) has degree in n exa
tly
+ max(; ).
By Lemma 4.3.7, the degree in n of the left hand side, i.e. p(n; k) is at most
+ degn (p(n; k)) + degn (P (n; k)) + d :
Proof.
We now use the previous result to get lower bounds on the degree in n of the
oe
ients zi (n), for 0 i d 1, of the linear re
urren
e operator L, and on
the Gosper polynomial y(n; k).
Denition 4.3.7. Let us dene:
D(F (n; k); d) = max(; ) (degn (p(n; k)) + degn (P (n; k)) + d ): (4.104)
Remark 4.3.4. By Corollary 4.3.5, we have that and
an be bounded independently of d, whereas degn(p(n; k)) + degn(P (n; k)) + d grows with d when
1. Therefore, if 1, for d big enough we expe
t D(F (n; k); d) to be
negative.
92
CHAPTER 4.
Theorem 4.3.10. Given F (n; k) proper hypergeometri
, n-regular in n, nonk-regular in n, then the following lower bound on the degree in n of zi (n), for
0 i d 1, and of the
oe
ients yi(n) of y(n; k) with respe
t to k must hold:
D(F (n; k); d):
(4.105)
(4.106)
Proof.
Proof.
4.4.
93
CONCLUSION
np
k
(4.108)
0
0
1
94
CHAPTER 4.
(4.110)
Part III
Polynomial Arithmeti
Library
95
Chapter 5
Combinatorial Interpretation of
Division
5.2 Denitions
Let us denote by K a eld
ontaining Q , and let R either be equal to K or to
the ring K [v1; v2 ; : : : ; vr of multivariate polynomials over K .
Let a0 , a1, ... an be trans
endental elements over the ring R and let R =
R(a0 ; a1 ; : : : ; an ) be the trans
endental ring extension over R with respe
t to a0 ,
a1 , ... an .
Given these trans
endentals ai, let a(x) 2 R [x be
a(x) =
n
X
i=0
ai xi :
Hen
e deg(a) = n.
Let us
onsider a polynomial b(x) 2 R[x with deg(b) = m and bm 2 K n f0g:
b(x) =
m
X
i=0
97
bi xi
98
CHAPTER 5.
are guaranteed by
Notation
i;j denotes the Krone
ker delta fun
tion, whi
h is 1 if i = j and 0 otherwise.
[xl is the operator whi
h extra
ts the
oe
ient of xl from a polynomial
revd(p(x)) = xdp(1=x):
(5.4)
Convention:
5.3.
99
Property 5.3.1. For any polynomial p(x) 2 R[x (or respe
tively R [x), deg(p) =
m, with p0 6= 0, and for any non-negative integer l, there exists always a polynomial y (x) 2 R[x (respe
tively R [x) su
h that
p(x) y (x) 1
Moreover,
Proof.
mod xl :
(5.5)
y 0 = p0 1 :
(5.6)
k
X
k=0
i=0
pi yk
xk = 1:
(5.7)
:::
in whi
h the
oe
ient of the highest variable in the ordering y0 < y1 < < yl 1
is always p0. Therefore su
h a system
an be solved by ba
k-substitution, that
yields
y 0 = p0 1 ;
(5.9)
whi
h proves the se
ond statement (5.6) , and for all 1 k l 1 we have
k
X
1
yk =
pi yk i; k 2 N n f0g:
p
0
i=1
(5.10)
Remark 5.3.1.
inverse. Sin
e pi
100
CHAPTER 5.
For the sake of simpli
ity we will
onsider bm = 1 in the following. The more
general
ase when bm is an arbitrary element of K n f0g
an be redu
ed to the
ase bm = 1 by dividing the
oe
ients of b(x) by the leading
oe
ient.
We will need the following lemmas to show how C (i) gives the ne
essary
information to invert the m-reversed of b(x) = Pmi=0 bixi 2 R[x:
Lemma 5.4.1. For any non-negative integer i, the
oe
ients of the quotient of
a(x) divided by b(x)
an be expressed by the following formula:
qn
Moreover, qn
i = an
i 1
X
k=max (0;i m)
bm
(5.11)
i+k qn m k :
is linear in an , an 1 , ..., an i .
m i
The proof of the above formula follows immediately from the
orre
tness
of the s
hool division algorithm. In fa
t this formula des
ribes in a re
ursive
fashion a step of the s
hool division algorithm:
Proof.
an xn m + (an
+ :::
( an
an xn
xn
a n bm
xn m
1)
+ (an
an bm
(an
an bm
bm
1)
1)
xn m
+ q1 x + q0 =
+ an
xn
+ an
xn
+ an bm
(an
a n bm
(an
1
1
an bm
xn
+ an bm
1)
xn
xn
1)
xn
+ + a0 ) (xm + bm
2
xm
+ + b0 )
+ :::
xn
+ (an
an bm
2)
+ (an
an bm
1)
+ :::
bm 1 xn
+ :::
an bm 2 (an 1 an bm 1 )bm 1 ) xn 2 + : : :
: : : : : : : : : : : : : : : : : : : : : : : : : : :
(an
5.4.
RELATION BETWEEN
AND
101
=h;n
=h;n
=[ah(an
i
X
(i+1)
i
X
k=max (0;i+1 m)
k=max (0;i+1 m)
bm i
|
=0
k=max (0;i m)
i 1
X
k=max (0;i m)
i 1
X
bm
[a{zh 1 qn
i 1
X
bm
i+k
(i+1)+k
[ah 1qn
m
}
k=max (1;i+1 m)
qn
i +k a h
bm
i +k a h q n m k
bm
i+k qn m k
)=
bm
m (k+1)
m k
m k
i
X
bm
k=max (0;i m)
qn
i+k
[ah 1qn
m k
(5.13)
) = [ahqn
m i:
Theorem 5.4.3. The
oe
ients of the quotient q (x) are given by the following
formula:
ql =
nX
m l
an j C (n m l
j =0
Pn m
the polynomial i=0 C
Moreover,
ulo xn m+1 , i. e.
nX
m
i=0
Proof.
j ):
(5.14)
mod xn
m+1 :
(5.15)
102
CHAPTER 5.
By Lemma 5.4.1 (5.11), we know that ql is linear in an, an 1, ..., am+l . Therefore we have:
ql =
nX
m l
j =0
an
j [an j ql =
nX
m l
j =0
a n j C (n m l
j ):
(5.17)
In order to prove the se
ond part of the lemma, we noti
e that, by the previous
statement (5.17), we must have
nX
m
revn(a)
nX
m
l=0
i=0
qn
C (i)xi
nX
m
l
X
l=0
j =0
an j C (l
l
m lx
j ) xl
m+1 :
(5.18)
m+1 :
(5.19)
Theorem 5.5.1. The sequen
e C (i) satises the following m-th order linear re
urren
e:
8
>
<
0;
C ( i ) = 1;
> P
:
i 1
k=max (0;i
if i < 0;
if i = 0;
m) bm i+k C (k ); if i > 0:
(5.23)
5.6.
LIFTING TO THE
Proof.
B (X ) CASE
103
= [an0 = 0:
From Lemma 5.4.1 (5.11) we have the following re
urren
e equation for qn
qn
m i
= an
m i
i 1
X
k=max (0;i m)
bm
i+k qn m k :
m i
(5.24)
therefore satisfy the re
urren
e (5.10) shown in the proof of the Property 5.3.1,
whi
h is, up to a
hange in the indi
es the same as (5.23).
Remark 5.5.2. This m-th order re
urren
e des
ribes an algorithm for
omputing
the
oe
ients C (i) of the modular inverse of revm (b(x)), whi
h
omputes ea
h
oe
ient by m multipli
ations in R.
Here we show how Cb(x)
an be used to
onstru
t Cb(x ), for any positive integer .
Remark 5.6.1. Cb(x ) (i) is, by Theorem 5.4.3 (5.15), the
oe
ient of degree i
in the inverse of revm (b(x )).
Theorem 5.6.1. For any moni
polynomial b(x) and any positive integer we
have
Cb(x ) (i) =
(5.25)
Proof.
nX
m
i=0
m+1 :
(5.26)
104
CHAPTER 5.
nX
m
i=0
(5.27)
m + 1) n m + 1, we also have
nX
m
i=0
m+1) ;
m+1 :
(5.28)
m+1 :
(5.29)
( (i) ) =
C
xi
nX
m
i=0
(C (i)xi ):
(5.30)
(5.31)
5.8.
105
BINOMIAL CASE
t2Comp(i) 2 t
bm
);
(5.32)
Proof.
d)m
(i) =
t2Comp(i) 2 t
(( 1)
+1 d
)=
m+i
i
d)m
(i) =
t2Comp(i)
2 t
m+i 1 i
(( 1)
+1 d
1 di;
m
):
(5.35)
(5.36)
106
CHAPTER 5.
C(x
(0) = 1 =
1 d0:
m+0
0
We now assume that for a
ertain positive i, C(x
0 k < i, and we prove it for i.
By Theorem 5.23 we have
C(x
=
=
d)m
i 1
X
(i) =
i 1
X
k=0
iX
1
k=0
d)m
(( d)
(( 1)
(( d)
k=0
i k
i k+1 di
i k
i k
i k
d)m
C(x
m+k
k
i k
m+k
k
(k ) =
d)m
m+k
k
dk for any
(k)) =
1 dk ) =
(5.37)
1):
At rst glan
e to solve a denite sum like in (5.37) one would use Zeilberger's
algorithm [Zei90, [Zei91. However it turns out that this problem is also solvable
by Gosper's algorithm [Gos78 for indenite hypergeometri
summation. Both
algorithms have been implemented in various pa
kages for dierent
omputer algebra systems [Car99, [PS95, and are des
ribed in Se
tion 1.3.1 and Se
tion 1.3.2
as well as in [PWZ97, [Win96 and in [GvzG99, pages 622{639 and [GKP94,
pages 223{241. By using one of these pa
kages, one obtains
( 1)
= k (
m+k
k
i k
i
k
i
1) d k(m + k
im
i k+1 di
1 =
i)
i k
m+k
k
1 ;
(5.38)
where k denotes the forward dieren
e operator, i.e. k (f (k)) = f (k+1) f (k).
Therefore from (5.37) we get
(i) =
i k di k (m + k i) m m + k 1
(
1)
= k
=
i k
k
i
m
k=0
m+i 1
di;
=
i
C(x
d)m
iX
1
(5.39)
5.8.
107
BINOMIAL CASE
Remark 5.8.1. The formula (5.25) allows us to generalize (5.35) to the
ase
b(x) = (x d)m , for any positive integer . The
orresponding formula be
omes
(
i=
d ;
if i 0 mod ;
(5.40)
( i ) = 0;
otherwise.
Remark 5.8.2. The binomial
oe
ient in the right hand side of (5.35):
m+i 1
m+i 1
= m 1 ;
i
also
ounts all the
ompositions of m + i into exa
tly m parts. For a simple
bije
tive proof of this see [And94, pages 54{57.
C(x
d)m
m+i=
i=
[1,1,1,1
108
CHAPTER 5.
For i = 5 we have:
[1,1,1,1,1
[3,2
[2,3
[1,4
[5
Denition 5.8.2.
with i parts:
Lemma 5.8.2. For any positive integer i and any
omposition C 2 Comp(i), the
number of
ompositions D 2 Comp(i) with exa
tly h parts, su
h that D !
C is
given by
i k
;
(5.43)
h k
where k is the number of parts of C .
5.8.
109
BINOMIAL CASE
Theorem 5.8.3. For any positive integer i and any
omposition C of i we have
X
DjD !C
(D) = C;1i :
(5.45)
i k
;
i l+1 k
(5.46)
(D ) =
iX
k+1
l=1
( 1)
l+1
i k
:
i l+1 k
(5.47)
( 1)
l+1
i k
i l+1 k
= C;1i ;
(5.48)
110
CHAPTER 5.
For any non-negative integer k, we
all a set (respe
tively multiset) with k
elements, a k-set (respe
tively k-multiset). We
all a sequen
e with k elements
(respe
tively without repetitions) a k-sequen
e (respe
tively a k-sequen
e without
repetitions) .
Denition 5.8.3. For any non-negative integer k and any set S we dene a
ombination (respe
tively
ombination without repetitions) from S of size k, to
be any k-subset (respe
tively k-multiset) of S .
Denition 5.8.4. For any non-negative integer k and any set S we dene a kpermutation (respe
tively k-permutation without repetition) from S , to be any ksequen
e of elements from S (respe
tively k-sequen
e of elements from S without
repetitions).
First of all we observe that the binomial
oe
ient in the right hand
side of (5.35):
m+i 1
Proof.
ounts all the
ombinations with repetitions of size i from an m-set. For a simple
ombinatorial proof of this we refer to [Str94b, pages 13{17.
We show that the left hand side of the formula (5.35) des
ribes an in
lusionex
lusion1 pro
edure whi
h
ounts the
ombinations with repetitions of size i from
an m-set by rst
ounting all the i-permutations with repetitions and then by
subtra
ting and adding i-permutations with repetitions where in
reasingly larger
blo
ks of
onse
utive elements are inversely ordered with respe
t to a
ertain
order.
Let us rst
ount all the i-permutations with repetitions from an m-set. Sin
e
for ea
h position we have m
hoi
es, this over
ounting yields:
i
m
=
1 {z 1 } 1 ;
(5.49)
In order to
ount the i-
ombinations with repetitions from an m-set, super
uous i-permutations with repetitions must be removed.
1 For
a formal and very general denition of in lusion-ex lusion see [Sta97, pages 64{67.
5.8.
111
BINOMIAL CASE
Let us
onsider the m elements from whi
h we have built all i-permutations
with repetitions totally ordered with respe
t to .
We disregard those i-permutations in whi
h in any position (i.e. from 1 to
i 1) two
onse
utive elements are not ordered2 with respe
t to the relation .
This is done for all
hoi
es of 2 elements from m and for ea
h position from
1 to i 1; therefore we subtra
t from the
ount:
i
m m
=
2 | 1 {z 1 } 2 1
i
(5.50)
112
CHAPTER 5.
[2; 2; 1; 1 ; 1; 1;
[2; 1; 2; 1; ; 1; 1;
:::::::::::::::::::::::::::
[2; 1; 1; 1; ; 1; 2;
[1; 2; 2; 1; ; 1; 1;
[1; 2; 1; 2; ; 1; 1;
:::::::::::::::::::::::::::
[1; 2; 1; 1; ; 1; 2;
:::::::::::::::::::::::::::
:::::::::::::::::::::::::::
In this way we have again over
ounted those i-permutations with repetitions
where larger groups of
onse
utive elements are inversely ordered with respe
t to
, whi
h
orrespond to
ompositions of i with larger parts obtained by merging
two parts into one.
In the in
lusion-ex
lusion pro
edure the sign of the
orre
tion will be positive
if the
orresponding
ompositions of i have an even number of even parts and
will be negative otherwise, in fa
t merging two odd parts generates a new even
part and merging two parts where at least one is even de
reases the number of
even parts by 1.
This pro
ess
an be des
ribed as a diagram of i. Theorem 5.8.3 guarantees
that ea
h
lass of i-permutations with blo
ks of
onse
utive elements inversely
ordered is
ounted
orre
tly, i.e. the sum of the times in whi
h it is in
luded and
ex
luded is zero.
Some related
ombinatorial proofs on
ompositions
an be found in [And94,
pages 54{57 and [Str94b, pages 13{17.
Example 5.8.2.
Let us
onsider all
ombinations with repetitions of size 3 from the set fa; b;
; dg.
Then we are in the
ase m = 4, and i = 3.
Counting all 3-permutations with repetitions from a 4-set, yields:
3
4 4 4 = 4 = 64;
1
1 1 1
whi
h
orresponds to the
omposition [1; 1; 1.
Let us des
ribe 3-permutations with repetitions from a 4-set as strings3 of
size 3 from the set fa; b;
; dg where the
onsidered ordering is the alphabeti
al
ordering.
3 Strings
5.8.
BINOMIAL CASE
113
where the patterns on the left and right
olumn of (5.51)
orrespond respe
tively
to the
ompositions [2; 1 and [1; 2.
By doing so we are over
ounting 3-permutations with repetitions where 3
onse
utive elements are not alphabeti
ally ordered:
(
b a);
(d b a);
(5.52)
(d
a);
(d
b):
The number of these
ases is:
4 = 4;
3
whi
h
orresponds to the
omposition [3.
In fa
t the 3-permutations with repetitions in (5.52) mat
h patterns both on
the left and on the right
olumn of (5.51):
(
b a) 2 ( b a) \ (
b );
(d b a) 2 ( b a) \ (d b );
(5.53)
(d
a) 2 (
a) \ (d
);
(d
b) 2 (
b) \ (d
):
Hen
e the nal
ount is:
4 24 4 + 4 = 20 = 4 + 3 1:
(5.54)
3
3
2 1
1
4 In
this
ontext a pattern is a set of strings represented with the same notation as of a string
but with at least one o
urren
e of the wild-
ard
hara
ter \*", whi
h denotes any possible
element of the set fa,b,
,dg.
114
CHAPTER 5.
where p 2 Q .
For brevity of notation we use (x) for dp (x) and G(i) for Gdp (i) whenever
this does not
ause ambiguity.
Theorem 5.9.1. When d(0) = 1 and p is a non-negative integer, we have
(5.56)
Gdp (i) = Crevps (dp ) (i);
for any non-negative integer i.
Theorem 5.9.2. For any non-negative integer i and any p 2 Q Gdp (i) is solution
of the following linear order re
urren
e of order s (degree of d(x)) with linear
oe
ients:
s
X
i=0
(j + i (p 1))diG(t
j) = 0
(8j 2 N n f0g):
(5.57)
First of all we noti
e that using the denition of (x) and dierentiating
we obtain
0 (x) = p d(x) p 1 d0 (x):
Proof.
5 For
5.9.
115
POWERS OF POLYNOMIALS
This, together with the denition of (x), yields a rst order linear dierential
equation:
d(x) 0 (x) + p d0 (x) (x) = 0:
Plugging the expli
it forms of d(x) and (x) into this equation, yields
s
X
i=0
di
xi
1
X
i=0
G(i)
ixi
+p
s
X
i=0
ixi
di
1
X
i=0
(5.58)
G(i)xi = 0:
l
X
l=0
i=0
1
X
+p
=
l
X
i=0
l=0
1 X
l+1
X
l=0
+p
=
(i + 1)G(i + 1)dl
l
X
i=0
l=0
i=0
l=0
iG(i)dl
i=1
1
X
l+1
1 X
X
(G(i)(l
!
i+1
xl +
i + 1)dl
!
i+1
xl =
(5.59)
xl +
(G(i)(l
(i + (l
i + 1)dl
i + 1)p)dl
!
i+1
xl =
(i)
i+1 G
xl = 0:
(i + (l
l+1
X
i + 1)p)dl
(i) = 0; 8l 2 N :
i+1 G
i+1 i2N
(i + (l
i=l+1 s
i + 1)p)dl
(i) = 0; 8l 2 N :
i+1 G
i=0
(j + i (p 1))diG(j i) = 0 8j 2 N n f0g:
(5.60)
116
CHAPTER 5.
From Property 5.3.1 (5.6) we have that the initial pvalue Gdp (0) must be the
inverse of the
onstant
oe
ient of d(x)p, namely d0 . Moreover, the re
urren
e
(5.57) en
odes the remaining s 1 initial values, whi
h are obtained as the rst
s 1 solutions of (5.57) for t 2 [1; s 1:
The re
urren
e (5.57) des
ribes an algorithm that performs s multipli
ations over
R at ea
h step. In fa
t from (5.57) we see that for t 2 N n f0g, we
an write G(t)
as s summands:
s
(t + i (p 1)) d G(t i):
1 X
(5.61)
G(t) =
d0
i=1
Therefore the
omplexity for the
omputation of the inverse modulo xl by this
algorithm is O(s l).
Exponentiation of dense univariate polynomials has been implemented in
C++. For more details and for a
omparison with repeated squaring we refer to
the next
hapter.
Remark 5.10.1. The
omplexity of the previous algorithm is independent of the
power p.
Remark 5.10.2. For p = 1 the re
urren
e (5.61) be
omes the re
urren
e (5.10)
used in the proof of Property 5.3.1.
5.10.2 Division by Powers of Polynomials
Division with remainder of the polynomial (x) 2 R[x of degree n by d(x)p,
where d(x) 2 R[x is a polynomial of degree s,
an be done by rst
omputing
5.11.
SUMMARY
117
5.11 Summary
In this
hapter we have used the s
hool division algorithm for polynomials to nd
a des
ription of the modular inverse of a polynomial (Theorem 5.4.3). With this
result we
an des
ribe the
oe
ients of the modular inverse of a polynomial over
a eld
ontaining Q by a linear re
urren
e (Theorem 5.5.1). Su
h a linear re
urren
e has a
ombinatorial meaning in terms of integer
ompositions (Corollary
5.7.1).
We have treated the spe
ial
ase of the modular inverse of a binomial or
power of a binomial of a spe
ial form (Corollary 5.8.1), whi
h leads to prove the
ombinatorial identity (5.35), for whi
h we
an provide a
ombinatorial proof
using the prin
iple of in
lusion-ex
lusion.
118
CHAPTER 5.
Chapter 6
The
PolyComb
Pa kage
The part of the library written in Mathemati
a [Wol99 is
omposed by an interfa
e and by a parser whi
h is used by the interfa
e to translate the polynomial
expression into a format whi
h
an be easily pro
essed by the C++ library.
119
120
CHAPTER 6.
THE
POLYCOMB
PACKAGE
The Interfa e
Dierent versions of the interfa
e are available depending on the type of polynomials involved in the expressions, e.g. whether the polynomials are sparse or
dense, whether their power produ
ts are sparse or dense, whether their
oe
ients are arbitrary length integers or
oating point reals, et
. The interfa
e
takes as input a polynomial expression in the Mathemati
a syntax.
The interfa
e invokes the parser, whi
h, using also the information on the
type of polynomial expression, rewrites the expression in a spe
ial
ompressed
postx format (see next se
tion for more details).
The interfa
e uses the C++ library to perform the
omputation and waits for
the result whi
h is read in from the standard output devi
e.
The Parser
polynomial
polynomial
The C++
omponent is the
ore of the library whi
h does all the
omputation
and outputs the result into a le or s
reen in a format that is both human readable
and that
an be read and pro
essed by Mathemati
a.
The library pro
esses the input in postx form by a sta
k. It iteratively reads
an element in postx form and if it is a polynomial, it puts it into the sta
k, if it
6.2.
121
is an n-ary operand, it takes n polynomials from the top of the sta
k, it performs
the
orresponding operation on them and puts the result into the sta
k. The
nal result will be the polynomial left in the sta
k.
6.2.3 The Communi
ation
The following pi
ture brie
y des
ribes how the
omponents intera
t with ea
h
other.
Mathemati
a
Interfa
e
Polynomial Expression
Type of Polynomial
Parser
Polynomial Result
C++
Library
Postx Expression
The dotted arrow within the interfa
e box means that the interfa
e simply
alls the parser within its
ode and uses its result.
The
ommuni
ation between the interfa
e and the library is implemented by
saving the postx expression into a le whi
h is then read by the C++ library.
The output is written in the standard output devi
e. The interfa
e reads the
output of the C++ library through the pipe me
hanism.
This implementation is good when the library is
alled only on
e be
ause
at ea
h new
all the library has to be restarted. When this is not the
ase a
better me
hanism should be used. For instan
e the
ommuni
ation
ould be
done through MathLink ([Wol99) or through a dierent me
hanism in whi
h
the library is always running in a stand-by mode as a server and whenever an
expression is sent to it by a
lient (e.g. the Mathemati
a interfa
e), it \wakes
up" and pro
esses the input.
122
CHAPTER 6.
THE
POLYCOMB
PACKAGE
Dense Polynomial
Sparse Polynomial
Power Produ t
Sparse Univariate
Single Power
The implemented fast arithmeti
for dense polynomials in
ludes: Karatsuba multipli
ation, division by Newton method, exponentiation by generating fun
tions,
division by powers of polynomials by generating fun
tions.
6.4.
THE ALGORITHMS
123
Division by Newton method (see [GvzG99, pages 243{249) is based on the idea
of dividing a(x) by b(x) by rst
omputing the inverse of the reversed of b(x)
(see Denition 5.2.1) modulo an appropriate power of x through a symboli
version of Newton iteration method, and then
omputing the quotient by a fast
multipli
ation algorithm (e.g. Karatsuba multipli
ation).
124
CHAPTER 6.
THE
POLYCOMB
PACKAGE
(6.6)
(6.10)
(6.11)
6.4.
125
THE ALGORITHMS
+1
(x);
if n = 1;
n=
2
n=
2
(6.16)
p(x) = p(x) p(x) ;
if n is even, n 6= 1;
>
:
(n 1)=2
(n 1)=2
p(x)
p(x)
p(x); if n is odd, n 6= 1:
This pro
edure performs blog2 n
squarings and H (n) 1 blog2 n
multipli
ations, where H (n) is the Hamming weight of the binary representation of n,
i.e. the number of 1s in it. For more details we refer to [GvzG99, pages 69{70.
n
126
CHAPTER 6.
THE
POLYCOMB
PACKAGE
Fast arithmeti
for polynomials in sparse representation in
ludes: Karatsuba multipli
ation (it pays o if the involved sparsely represented polynomials are not
very sparse), multipli
ation by geobu
ke
ts, repeated squaring for fast exponentiation.
Karatsuba Multipli
ation
Karatsuba multipli
ation
an also be used for polynomials in sparse representation but its advantage over the s
hool algorithm degrades qui
kly when many
oe
ients are zero. For more details we refer to Se
tion 6.4.1 and also to [Win96,
page 39 and [GvzG99, pages 210{215.
Repeated Squaring for Fast Exponentiation
6.5.
127
5x7 y + 13x5
(6.17)
B [2 = y 24 + 3x4 y 6 + 5x7 y + 17x5 + 2x2
B [3 = 4x5 + x2
has \internal
an
ellations" and represents y24 + 3x4y6 x2 + 4. In fa
t the
\
anoni
alization" gives
B [1 + B [2 + B [3 =
= ( 5x7 y 13x5) + (y24 + 3x4 y+5x7 y + 17x5 2x2 ) + ( 4x5 + x2 ) = (6.18)
= y24 + 3x4 y6 x2 :
128
CHAPTER 6.
THE
POLYCOMB
PACKAGE
These les are available on the world wide web at the
ombinatori
s home
page of RISC (University of Linz, Austria) at the following web address
http://www.ris
.uni-linz.a
.at/resear
h/
ombinat/
6.5.1 Loading
The pa
kage pPostify.m
ontains the parser whi
h provides the fun
tions ne
essary to
onvert polynomial expressions into a spe
ial postx format that
an be
interpreted by the C++ library.
The pa
kage exists in various versions that only dier by the kind of polynomials that are treated (dense univariate, sparse univariate, sparse multivariate)
and the type of power produ
ts (sparse, dense).
The following types of polynomials are so far supported
dense univariate
sparse univariate
sparse multivariate with sparse power produ
ts
sparse multivariate with dense power produ
ts
Support for additional types of polynomials (e.g. dense multivariate, re
ursively represented, et
.)
an be easily added without having to rewrite the
parser. It su
es to rewrite the fun
tion WritePoly of the parser (
ontained
in pPostify.m) that translates a polynomial in the Mathemati
a syntax into
its internal representation (for more details see the se
tion on the polynomial
representation).
6.5.
129
polynomial identier
sum
produ
t
exponentiation
Arguments
polynomial representation
sum arity
produ
t arity
exponent
The power produ
ts x5 y7z2 and x3 z6 are represented sparsely by the sequen
es
3 |{z}
1 5 |{z}
2 7 |{z}
3 2;
x
5 7 2;
2 |{z}
1 3 |{z}
3 6;
x3
3 0 6;
z6
130
CHAPTER 6.
THE
POLYCOMB
PACKAGE
Polynomial Representation
2x
7x2
3x5
5y2
5y2
3xz
pPostify[strm, expr
6.5.
131
Parameters
strm is the stream where we want pPostify to write its output. It
an also
be "stdout" whi
h is the standard output, i.e. the Mathemati
a window.
expr is
, ^ .
Semanti s
transforms a polynomial into the postx format that
an be interpreted by the C++ library. Its output depends on the kind of polynomials that
are treated.
The type of polynomial is given by loading the
orresponding routines. This
is so far implemented1 by having more versions of the pa
kage pPostify.m.
pPostify
(sparse version)
Output =
X 2
X 2
X 4
T 2
P 2
0 2
0 2
0 7
1 5
3 1
1 4
3 2
5 3
(dense version)
Output =
X
X
X
T
P
2 2 5
4 2 0 0 1
6 7 4 0 2 0 3
2
2
Example 6.5.5.
1 This
ould also be done with a unied pa
kage and by passing the type of polynomials and
the type of power produ
ts through an option or parameter to the
ommand pPostify.
132
CHAPTER 6.
THE
POLYCOMB
PACKAGE
1 1 1 7
1 1 1 1 1 2 1 2
0 1 1 2 2 5 2 1 1 3 1
1 0 0 7
1 0 0 1 0 1 0
0 0 1 0 2 0 5
2
1 0 1
PolynomialExpand[expr
Parameter
expr is a Mathemati
a polynomial expression
tors +, , ^ .
Options
Name
Algorithm
Verbose
Semanti s
Default Value
expand.out
pression into the postx format. Then it uses the C++ library by the exe utable
6.5.
133
is the name of the exe
utable le that uses the C++ library
to perform the polynomial expansion. Dierent versions of the exe
utable,
using for instan
e dierent
oe
ient rings,
an exist.
Verbose toggles the verbosity level.
Algorithm
Example 6.5.6.
Output =
(6.19)
Parameter
thr
Options
Name
Algorithm
Verbose
Default Value
power.out
134
CHAPTER 6.
THE
POLYCOMB
PACKAGE
Semanti s
omputes
poly power mod xthr ;
(6.20)
by
alling power.out whi
h reads the polynomial through a le. ModPower uses
the
ommand WritePoly (
ontained in pPostify.m) to translate poly into its
internal representation. The so far implemented version assumes that poly has
onstant
oe
ient equal to one. The output is then read by ModPower through
the pipe me
hanism.
ModPower[poly,power,thr
Example 6.5.7.
Output =
x + x2
x3 + x4
x5 + x6
x7 + x8
x9
(6.21)
Example 6.5.8.
Output =
1 36x + 594x2 5916x3 + 39303x4 180576x5 + 566940x6 1098504x7 (6.22)
6.6.
135
The sparse polynomial library is
ontained in the following les (followed by the
extensions .h and .
xx):
File name
Des
ription
log4
logarithm base four
lassLong
lass for long integers
uniPowers
lass of powers
powerProdu
ts
lass of sparse power produ
ts
densePowerProdu
ts
lass of dense power produ
ts
polynomialRing
sparse polynomial ring
lass
uniPolynomials
univariate sparse polynomial ring
lass
The additional le expand.
xx is required to generate expand.out, whi
h is
required by the Mathemati
a interfa
e (expand.nb).
The Power Produ
ts Classes
The implemented power produ
ts types are
ontained in the following template
lasses
Template Parameters
Type of power produ
t File
uniPowers
single powers
expType
powerProdu
ts
sparse power produ
ts varType, expType
densePowerProdu
ts
dense power produ
ts nVars, expType
whose parameters are
Parameter Type of parameter Des
ription
expType
lass
Type of the exponents of the powers
varType
lass
Type des
ribing the indeterminates
nVars
int
Number of variables
A power produ
t implementation in order to be used as a parameter of
polynomialRing must provide a
onstru
tor with no arguments, the overloaded
operators for produ
t, produ
t \in pla
e",
omparison, input, output and the
method one() to
ompute the unit power produ
t.
The Coe
ients
The
oe
ient ring is not implemented in the library but has to be provided as
a parameter to the polynomial template
lasses.
A
oe
ient ring implementation must at least provide a
onstru
tor with no
arguments, all the overloaded operators for sum, sum \in pla
e", dieren
e, prex
136
CHAPTER 6.
THE
POLYCOMB
PACKAGE
and postx in
rement, prex and postx de
rement, produ
t, produ
t in \pla
e",
omparison, assignment input, output and the method zero() to
ompute the
zero element.
The template
lass
lassLong (in
lassLong.h and
lassLong.
xx) adds
the method zero() to the C++ predened types (int, float, double, et
.) and
to the GMP
lasses ([GNU) mpz
lass and mpr
lass.
The library has so far been tested with the following built-in
oe
ient rings:
int
long long
float
double
long double
and with the following additional implementations of
oe
ient rings:
mpz
lass (GMP2 implementation of arbitrary length integers)
mpr
lass (gmp implementation of rationals)
NTL::ZZ (NTL3 implementation of arbitrary length integers)
user dened template
lass for Zp, with p prime
The polynomialRing Class
3 For
6.6.
137
void
gbMult(polynomialRing<ppType,
oeRing> & poly)
whi
h multiplies the polynomial \in pla
e" by poly using a geobu
ket,
the method
void
expandFromFile(istream & sor)
whi
h expands \in pla
e" a polynomial expression from the stream sor,
the operators <<, >> for input and output from and to streams.
A text le with name varNames has to be present in the same dire
tory
as expand.out. Su
h le must
ontain an integer representing the maximum
number of indeterminates followed by the names of the indeterminates used for
the output format. When the library is used through the Mathemati
a interfa
e
the appropriate le varNames is generated automati
ally.
The uniPolynomial Class
138
CHAPTER 6.
THE
POLYCOMB
PACKAGE
uniPolynomial<degType,
oeRing>
shift(
onst degType d)
The dense polynomial library is implemented in uniPolynomial that is a template
lass
ontained in the following les (followed by the extensions .h and
.
xx):
File name
Des
ription
log2
logarithm in base two
lassLong
lass for long integers
uniPolynomials
lass of univariate dense polynomials
The exe
utables expand.out and power.out that are used with the Mathemati
a interfa
e are produ
ed by the les
File name Des
ription
expand.
xx expand input from Mathemati
a
power.
xx exponentiates input from Mathemati
a
The dense polynomial
lass implements
binary operators between polynomials for sum and produ
t;
6.6.
139
140
CHAPTER 6.
THE
POLYCOMB
PACKAGE
the method
void
expandFromFile( istream & sor)
expands \in pla
e" a polynomial expression from the stream sor;
the operators <<, >> for input and output from and to streams.
<gmp.h>
<gmpxx.h>
<iostream>
<fstream>
"
lassLong.h"
"polynomialRing.h"
6.8.
141
BENCHMARKS
r2Stream.
lose();
out << "a : " << a << endl;
out << "b : " << b << endl;
out << "a + b = " << a+b << endl;
out << "a * b = " << a * b << endl;
out << "a^2 = " << (a^2) << endl;
out << "b^2 = " << (b^2) << endl;
a.gbMult(b);
out << "(using Geobu
kets) a := a * b" << endl;
out << "a
= " << a << endl;
};
1 1 1
2 1 1
2 2 1
1 1 3 1
142
CHAPTER 6.
THE
POLYCOMB
PACKAGE
6.8.1 Measurements
We present some timings of the Mathemati
a built-in fun
tions versus our library
used through its Mathemati
a interfa
e for polynomial expansion.
These timings measure the overall time spent by the library when used through
the Mathemati
a interfa
e. The overhead produ
ed by the parsing of the expressions and by the data inter
hange is also in
luded in the timings.
The
oe
ient arithmeti
is provided by the
lass mpz
lass of the GMP
library [GNU for arbitrary length arithmeti
.
Modality of Measurement
All the tests have been run on a Pentium IV 1,5 Megahertz equipped with 512
Megabytes of memory and under the Linux operating system. For the Mathemati
a
ode of the tests we refer to Appendix B. The timings are measured only
in se
onds and are not to be
onsidered very a
urate sin
e slight variations exist
in dierent exe
utions of the tests.
6.8.2 Polynomial Multipli
ation and Expansion
Dense Polynomials
Here we present some timings of the Mathemati
a built-in fun
tions versus our
library used through the Mathemati
a interfa
e for polynomial expansion using
Karatsuba multipli
ation and using s
hool multipli
ation.
degree Mathemati
a Karatsuba Mult. S
hool Mult.
1000
10
1
1
2000
43
3
4
3000
97
5
7
4000
167
6
12
For more details see Appendix B.
Sparse Univariate Polynomials
Here we present some timings of the Mathemati
a built-in fun
tions
ompared
with the timings of our library when used through its Mathemati
a interfa
e for
polynomial expansion using geobu
ket multipli
ation and using s
hool multipli
ation.
The test measures in se
onds the time spent for
omputing the produ
t
of two univariate polynomials with exa
tly t = m 100 monomials, for m =
2; 3; 4; 5; 6; 7; 8; 9.
6.8.
BENCHMARKS
143
Ea
h
oe
ient is in the range between 0 and 9 and has degree in the range
between 1 and m 107. We refer to the Appendix B for more details on how the
tests were exe
uted.
power produ
ts Mathemati
a Geobu
ktes S
hool Algorithm
200
2
2
1
300
7
3
4
400
17
5
7
500
33
8
12
600
56
12
19
700
88
17
28
800
133
22
39
900
192
29
54
1000
264
35
72
For more details see Appendix B.
Sparse Multivariate Polynomials
Here we present some timings of the Mathemati
a built-in fun
tions versus the
polynomial library used through the Mathemati
a interfa
e for polynomial expansion in a version using both geobu
ket multipli
ation and in a version using
s
hool multipli
ation.
The test measures in se
onds the time spent for expanding an expression of the
form p1 p2 +( p1 +1) p2 where p1 and p2 are randomly generated polynomial in
m = 4; 8 indeterminates with exa
tly t = 300; 400; 500; 600; 700 power produ
ts.
Ea
h
oe
ient is in the range between 0 and 9 and ea
h power produ
t is a
produ
t of the m indeterminates whose exponent has a 90% probability of being
0 and a 10% probability of being a value in the range between 1 and 99. We refer
to the Appendix B for more details on how the tests were exe
uted.
Case m = 4
power produ
ts Mathemati
a Geobu
ktes S
hool Algorithm
300
23.5
4.0
6.0
400
54.0
7.5
14.0
500
102.5
11.5
26.5
600
177.0
19.0
46.0
700
275.0
27.0
72.5
800
438.0
36.0
113.0
900
587.0
51.0
166.0
1000
636.0
62.0
232.0
144
CHAPTER 6.
THE
POLYCOMB
PACKAGE
Case m = 8
Here we present some timings of the Mathemati
a built-in fun
tions versus the
Mathemati
a interfa
e for polynomial exponentiation using the generating fun
tion method and repeated squaring.
The tests measure in se
onds the time spent for exponentiating to the power
p = 50; 100; 150; 200; 250 randomly generated dense polynomials with degree d =
10; 20; 40 and
oe
ients in the range f0; 99g by
Built-in Mathemati
a Expand
ommand
Mathemati
a interfa
e using exponentiation by generating fun
tions
Mathemati
a interfa
e using repeated squaring
Case d = 10
6.9.
CONCLUSION
145
Case d = 40
146
CHAPTER 6.
THE
POLYCOMB
PACKAGE
Appendix A
Lagrange Interpolation
Lagrange Interpolation is based on the Lagrange interpolating polynomial, i.e.
the polynomial P (x) 2 F [x, with F eld, of degree n 1 whi
h passes through
the points
y1 = P (x1 );
(6.25)
yn = P (xn );
whi
h is given by
n
X
P (x) =
Pj (x);
(6.26)
j =1
with
Pj (x) =
n
Y
k=1
k6=j
x xk
y:
xj xk j
147
(6.27)
148
Appendix A
Newton Interpolation
Newton Interpolation uses the Chinese remainder algorithm to interpolate a polynomial where the
onsidered ring is the ring of polynomials over a eld. We
onsider the Chinese remainder problem where the remainders ri = f (pi) are values
of the unknown fun
tion f at pi and the moduli are linear fun
tions of the form
x pi , where x is the indeterminate:
x r1 (x p1 )
:::
(6.28)
x rt (x pt )
Remark: Newton interpolation is superior to Lagrange interpolation in that
it
an be used in an in
remental fashion.
Appendix B
Here we give some details on how the timings of the library for polynomial arithmeti were obtained.
149
150
Appendix B
;
m = ...;
p1 = rP[m * 10^7,m * 100;
p2 = rP[m * 10^7,m * 100;
initT = AbsoluteTime[;
r1 = Expand[p1 p2;
Print[AbsoluteTime[-initT
initT = AbsoluteTime[;
r2 = PolynomialExpand[p1 p2;
Print[AbsoluteTime[-initT
Ea
h
oe
ient is in the range between 0 and 9 and has degree in the range
between 1 and m 107.
Appendix B
151
152
Appendix B
Personal Data
First Name:
Family Name:
Birthday:
Address:
Fabrizio
Caruso
19/09/1972
Via Del Popolo, 45/a,
95040, Li
odia Eubea (CT), Italy
Studies
1986{1991
High S hool
154
Bibliography
156
BIBLIOGRAPHY
[APRS G.E. Andrews, P. Paule, A. Riese, and V. Strehl. Ma
Mahon's Partition Analysis V: Bije
tions, re
ursions, and magi
squares. In Algebrai
Combinatori
s and Appli
ations.
[Car99 F. Caruso. A Ma
syma Implementation of Zeilberger's Fast Algorithm.
SFB-Report 99-16, RISC, J.K. University, Linz, Austria, 1999.
[Chy98 F. Chyzak. Fon
tions holonomes en
al
ul formel. PhD thesis, INRIA
(Fran
e), May 27 1998. Th`ese universitaire no. TU 0531.
[Cus89 T.W. Cusi
k. Re
urren
es for sums of powers of binomial
oe
ients.
J. Combin. Theory Ser. A, 52(1):77{83, 1989.
[GCL92 O.K. Geddes, R.S. Czapor, and G. Labahn. Algorithms for Computer
Algebra. Kluwer, 1992.
[GKP94 R. Graham, D. Knuth, and O. Patashnik. Con
rete Mathemati
s A Foundation for Computer S
ien
e. Addition Wesley, se
ond edition,
1994.
[GNU GNU Proje
t. GMP on line do
umentation. Available at
http://www.swox.
om/gmp/.
[Gos78 R.W. Gosper. De
ision pro
edure for indenite hypergeometri
summation. In Pro
eedings of the National A
ademy of S
ien
es of USA,
number 75, pages 40{42, 1978.
[GvzG99 J. Gerhard and J. von zur Gathen. Modern Computer Algebra. Cambridge University Press, 1999.
[Kar86 P.W. Karlsson. On two hypergeometri
summation formulas
onje
tured
by Gosper. Simon Stevin, 60(4):329{337, 1986.
[Lip81 J.D. Lipson. Algebra and Algebrai
Computing. Addison-Wesley, Reading, Massa
husetts, 1981.
[Ma
16 P.A. Ma
Mahon. Combinatory Analysis, volume 2. Cambridge University Press, 1915-1916. Reprinted: Chelsea, New York, 1960.
[Ma
96 Ma
syma, In
. Mathemati
s and System Referen
e Manual, sixteenth
edition, 1996.
[Pau95 P. Paule. Greatest fa
torial fa
torization and symboli
summation. J.
of Symboli
Computation, (20):235{268, 1995.
[Pet92 M. Petkovsek. Hypergeometri
solutions of linear re
urren
es with polynomial
oe
ients. J. of Symboli
Computation, (14):243{264, 1992.
BIBLIOGRAPHY
157
158
BIBLIOGRAPHY
[Yan98 T. Yan. The Geobu
ket Data Stru
ture for Polynomials. J. Symboli
Computation, 25(3):285{293, Mar
h 1998.
[Zei90 D. Zeilberger. A fast algorithm for proving terminating hypergeometri
identities. Dis
rete Mathemati
s, (80):207{211, 1990.
[Zei91 D. Zeilberger. The method of
reating teles
oping. J. of Symboli
Computation, (11):195{204, 1991.
Index
, 38
1i, 108
A(H ), 69
B (H ), 69
C (H ), 69
Cb (i), 98
Ci (M; b), 38
Comp, 104
D(F (n; k); d), 91
D(H ), 69
H (A), 44
k , 106
Qk , 80
Qn, 80
D (H ), 75
dp (x), 114
(H ), 76
i;j , 98
den, 80
dom, 70
evalv , 57
evalx, 45
F^ (n; k), 80
Q^ k , 87
Q^ n , 87
im, 70
m , 39
L, 80
modp, 40
H , 74
(A), 57
num, 80
H , 70, 74
H , 75
revd , 98
, 107
``?'',
60
Abramov's method, 17
Algorithm, 60{63
algorithm
addition to geobu
ket, 126
division
by generating fun
tions, 122
by powers of polynomials, 125
Newton, 122, 123
s
hool, 100
division by powers of polynomials
by generating fun
tions, 122
exponentiation
by generating fun
tions, 122, 125
by repeated squaring, 125
extended Eu
lidean, 53{55, 57, 66
row of, 53
generalized extended Eu
lidean,
53{55, 57, 66
Gosper, 15
Gosper Form, 83
multipli
ation
by geobu
kets, 126
Karatsuba, 122, 123
polynomial evaluation
Horner, 32
Zeilberger, 17
AllD, 51
ba
k-substitution, 41, 43, 57, 99
bije
tion
fundamental, 70
binomial theorem, 26
bla
k list, 58
159
160
Bla
kList,
60, 61, 64
bubble sort, 111
C++
omponent, 120
anoni
alization, 127
Cau
hy interpolation, 54
Chinese remainder
problem, 42, 147
theorem, 37, 42, 47, 49, 51
ChNullSpa
eAt, 49, 50
ChNullSpa
eUntil, 50
lient, 121
ombination, 110
without repetitions, 110
ombinatorial proof, 109
CompleteNullSpa
e, 62, 64
omposition, 104
on
atenation, 104
on
atenation of a
omposition, 104
Cramer matrix, 38
Cramer's rule, 41
CramerNullSpa
e.m, 49
d-reversed polynomial, 98, 138
DegreeBound, 60, 61, 64
diagram relation, 107
transitive and re
exive
losure, 107
diophantine
equations, 1
inequalities, 1
DistChNullSpa
eUntil, 50, 51
Distributed Mathemati
a, 50
divide, 139
divide-and-
onquer strategy, 123
domain, 70
expandFromFile, 137, 140
falling fa
torial, 82
nite support, 17, 19, 115
forward dieren
e operator, 106
fun
tion
Krone
ker delta, 98
sign, 107
INDEX
INDEX
expand
of a dense polynomial, 140
of a sparse polynomial, 137
produ
t
of
oe
ients, 136
of dense polynomials, 139
of power produ
ts, 135
of sparse polynomials, 136
sum
of
oe
ients, 135
of dense polynomials, 139
of sparse polynomials, 136
in
lusion-ex
lusion, 110, 112
InitializeD, 51
integer
ongruen
e, 39, 40, 42, 147
interpolant
polynomial, 66
rational, 55
InterpolatingRatFun
tion, 66
interpolation
Cau
hy, 55
delayed, 59
Lagrange, 46
Newton, 46
polynomial, 46
rational, 55
k-free re
urren
e, 15, 17
k-multiset, 110
k-permutation, 110
without repetition, 110
k-regular, 80
k-sequen
e, 110
without repetitions, 110
k-set, 110
Karatsuba, 137, 139
Karatsuba multipli
ation, 122, 123
Karlsson-Gosper
rst identity, 27
se
ond identity, 28
Krone
ker delta fun
tion, 98
Lagrange
161
interpolating polynomial, 147
polynomial interpolation, 46, 147
largest square upper part, 37
lifting, 103
linear re
urren
e operator, 80
LISP, 20, 31
LOADZeilberger.ma
syma, 22
lu
ky
evaluation, 57
primes, 41
rationals, 45
Ma
Mahon, 1
Ma
syma, 20, 31
Mathemati
a, 57, 59, 119
omponent, 127
interfa
e, 120
parser, 120
MathLink, 121
matrix
L(A), 38
R(A), 38
modp, 40
Cramer, 38
triangular form of a, 38
MAX ORD, 24
Maxima, 20, 31
maximal
ardinality property, 78
method
heuristi
, 58
hybrid, 58
re
ursive, 58
method (obj. or. progr.), 119
ModPower, 133
modPower, 139
modular inverse, 101, 116, 123, 134
ModularAlgorithm, 64
ModularNullSpa
e, 60
modulo, 138
mpz
lass, 136
MultiHybridNullSpa
e, 63
MultiModularNullSpa
e, 60
Mobius fun
tion, 109
162
n-regular, 80
-
al
ulus, 1
one(), 135
operator
forward dieren
e, 106
linear re
urren
e, 80
shift, 3, 80
over
ow, 126
Pade
approximant, 57
approximation, 56
parGosper, 24
parGosperVerboseOpt, 24
parser, 120, 128
Paule-S
horn implementation, 21
Petkovsek
ondition, 84
PolyComb, 119
PolynomialExpand, 132
polynomialRing, 136
postx form, 120, 121, 128{131
power produ
t, 129, 135
pPostify, 130
quintuple, 32
rational
erti
ate, 15
rational fun
tion approximation, 2,
53
INDEX
RatNullSpa e,
63
re
ursive method, 58
regular, 80
repeated squaring
for polynomial exponentiation, 125
resultant, 17, 20
reversed, 138
reversed polynomial, 98, 138
rising fa
torial, 82
s
hool
division, 100, 139
multipli
ation, 142, 143
server, 121
shift
operator, 3, 80
quotient, 14, 80
shift, 138
StartingInterpolation, 60, 64
stream, 129
Strehl identity, 29
summation
hypergeometri
denite, 17
indenite, 15
q -
ase, 14
Symboli
Algorithm, 64
teles
oping, 2, 13
template, 119
term
holonomi
, 20
hypergeometri
, 14
proper, 15, 80
regular proper, 80
trans
endental extension, 97
triangular form, 38
triangularization, 57
trinomial
oe
ients, 28
uniPolynomial, 137, 138
Vandermonde identity, 27
Var, 60, 61, 64
INDEX
Verbose,
60{64
WritePoly, 128, 134
Zeilberger, 24
Zeilberger's algorithm, 17
ZeilbergerVerboseOpt, 24
ZeilbergerVeryVerbose, 23
zero(), 136
163