19.07.2014 Views

Contents - Student subdomain for University of Bath

Contents - Student subdomain for University of Bath

Contents - Student subdomain for University of Bath

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.3. POLYNOMIALS IN SEVERAL VARIABLES 133<br />

z values, and then interpolate z polynomials. Each such computation would<br />

require 8 y values. Instead, if we believe 5 that (4.8) describes accurately the<br />

dependence <strong>of</strong> the g.c.d. on y, we should be able to deduce these equivalents<br />

with only three y values. Consider<br />

gcd(f| z=3,y=1 , g| z=3,y=1 ) = 525x 4 + 284x 2 + 1<br />

gcd(f| z=3,y=−1 , g| z=3,y=−1 ) = −525x 4 + 204x 2 + 1<br />

gcd(f| z=3,y=2 , g| z=3,y=2 ) = 6816x 4 + 9009x 2 + 1<br />

⎫<br />

⎬<br />

⎭<br />

(4.9)<br />

We should interpolate the coefficients <strong>of</strong> x 4 to fit the template ay 7 + by 3 + cy,<br />

and those <strong>of</strong> x 2 to fit the template a ′ y 7 + b ′ y 4 + c, while those <strong>of</strong> x 0 should fit<br />

the template a ′′ y 0 , i.e. be constant. Considering the coefficients <strong>of</strong> x 4 , we have<br />

to solve the equations<br />

a + b + c = 525<br />

−a − b − c = −525<br />

2 7 a + 2 3 b + 2c = 6816<br />

⎫<br />

⎬<br />

⎭ . (4.10)<br />

Un<strong>for</strong>tunately, these equations are under-determined (the second is minus twice<br />

the first), so we have to add another equation to (4.9), e.g.<br />

gcd(f| z=3,y=3 , g| z=3,y=3 ) = 91839x 4 + 107164x 2 + 1,<br />

which adds 3 7 a + 3 3 b + 3c = 91839 to (4.10) and the augmented system is now<br />

soluble, as a = 40, b = 121, c = 364.<br />

This process gives us an assumed (two assumptions are now in play here:<br />

that z = 3 is a good reduction, and that (4.8) describes the sparsity structure<br />

gcd(f, g) accurately) value <strong>of</strong><br />

gcd(f, g)| z=3 = ( 40 y 7 + 121 y 3 + 364 y ) x 4 + ( 40 y 7 + 243 y 4 + 1 ) x 2 +1. (4.11)<br />

Similarly we can deduce that<br />

gcd(f, g)| z=4 = ( 85 y 7 + 341 y 3 + 1365 y ) x 4 + ( 85 y 7 + 1024 y 4 + 1 ) x 2 + 1<br />

gcd(f, g)| z=5 = ( 156 y 7 + 781 y 3 + 3906 y ) x 4 + ( 156 y 7 + 3125 y 4 + 1 ) x 2 + 1<br />

gcd(f, g)| z=6 = ( 259 y 7 + 1555 y 3 + 9331 y ) x 4 + ( 259 y 7 + 7776 y 4 + 1 ) x 2 + 1<br />

gcd(f, g)| z=7 = ( 400 y 7 + 2801 y 3 + 19608 y ) x 4 + ( 400 y 7 + 16807 y 4 + 1 ) x 2 + 1<br />

gcd(f, g)| z=8 = ( 585 y 7 + 4681 y 3 + 37449 y ) x 4 + ( 585 y 7 + 32768 y 4 + 1 ) x 2 + 1<br />

(4.12)<br />

(each requiring, at least, three y evaluations, but typically no more).<br />

If we now examine the coefficients <strong>of</strong> x 4 y 7 , and assume that in gcd(f, g) there<br />

is a corresponding term x 4 y 7 p(z), we see that p(2) = 15 (from (4.8)), p(3) = 40<br />

(from (4.11)), and similarly p(4), . . . , p(8) from (4.12). Using Algorithm 41, we<br />

deduce that p(z) = z 3 + z 2 + z + 1. We can do the same <strong>for</strong> all the other<br />

5 We refer to this as the Zippel assumption, after its introduction in [Zip79a, Zip79b], and<br />

<strong>for</strong>malize it in Definition 73.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!