Contents - Student subdomain for University of Bath
Contents - Student subdomain for University of Bath
Contents - Student subdomain for University of Bath
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
134 CHAPTER 4. MODULAR METHODS<br />
(presumed) x i y j terms in the g.c.d., to get the following final result:<br />
x 4 (y 7 ( z 3 + z 2 + z + 1 ) + y 3 ( z 4 + z 3 + z 2 + z + 1 ) +<br />
y ( z 5 + z 4 + z 3 + z 2 + z + 1 )) + x 2 ( y 7 ( z 3 + z 2 + z + 1 ) + y 4 z 5 + 1 ) + 1.<br />
(4.13)<br />
We still need to check that it does divide g and g, but, once we have done so,<br />
we are assured by Corollary 11 that it is the greatest common divisor.<br />
4.3.2 Converting this to an algorithm<br />
There are, however, several obstacles to converting this to an algorithm: most<br />
centring around the linear systems such as (4.10). First, however, we must<br />
<strong>for</strong>malize the assumption made on page 133.<br />
Definition 72 We define the skeleton <strong>of</strong> a polynomial f ∈ R[x 1 , . . . , x n ], denoted<br />
Sk(f), to be the set <strong>of</strong> monomials in a (notional) distributed representation<br />
<strong>of</strong> f.<br />
Definition 73 We say that an evaluation φ : R[x 1 , . . . , x n ] → R[x i : i /∈ S],<br />
which associates a value in R to every x i : i ∈ S, satisfies the Zippel assumption<br />
<strong>for</strong> f if ψ(Sk(f)) = Sk(φ(f)), where ψ deletes the powers <strong>of</strong> x i : i /∈ S from<br />
monomials.<br />
For example, if f = (y 2 − 1)x 2 − x, Sk(f) = {x 2 y 2 , x 2 , x}. If φ : y ↦→ 1, then<br />
φ(f) = −x, so Sk(φ(f)) = {x}, but ψ(Sk(f)) = {x 2 , x}, so this φ does not<br />
satisfy the Zippel assumption. However, if φ : y ↦→ 2, φ(f) = 3x 2 − x and<br />
Sk(φ(f)) = {x 2 , x}, so this φ satisfies the Zippel assumption.<br />
Hence the assumption on page 133 was that z ↦→ 2 satsifies the Zippel<br />
assumption. Let us now look at the problems surrounding (4.10). In fact, there<br />
are three <strong>of</strong> them.<br />
1. The equations might be under-determined, as we saw there.<br />
2. We need to solve a t × t system, where t is the number <strong>of</strong> terms being<br />
interpolated. This will normally take O(t 3 ) coefficient operations, and, as<br />
we know from section 3.2.3, the coefficients may also grow during these<br />
operations.<br />
3. The third problem really goes back to (4.9). We stated that<br />
gcd(f| z=3,y=−1 , g| z=3,y=−1 ) = −525x 4 + 204x 2 + 1,<br />
but we could equally well have said that it was 525x 4 − 204x 2 − 1, at<br />
which point we would have deduced that the equivalent <strong>of</strong> (4.10) was<br />
inconsistent. In fact, Definition 25 merely defines a greatest common<br />
divisor, <strong>for</strong> the reasons outlined there. We there<strong>for</strong>e, as in Algorithm 14,<br />
impose gcd(lc(f), lc(g)), as the leading coefficient <strong>of</strong> the greatest common<br />
divisor.