11.07.2015 Views

Polynomial evaluation and interpolation on special sets of points

Polynomial evaluation and interpolation on special sets of points

Polynomial evaluation and interpolation on special sets of points

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

also be regarded as base change problems, between m<strong>on</strong>omial or Newt<strong>on</strong> basis<strong>on</strong> <strong>on</strong>e h<str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> Lagrange basis∏∏∏j≠0(x − x j )∏j≠0(x 0 − x j ) , j≠1(x − x j )∏j≠1(x 1 − x j ) , . . . , j≠n−1(x − x j )∏j≠n−1(x n−1 − x j )associated to the <strong>points</strong> x 0 , . . . , x n−1 , <strong>on</strong> the other h<str<strong>on</strong>g>and</str<strong>on</strong>g>.Our c<strong>on</strong>tributi<strong>on</strong>. The core <strong>of</strong> this paper is the study <strong>of</strong> the three operati<strong>on</strong>smenti<strong>on</strong>ed up to now:(1) c<strong>on</strong>versi<strong>on</strong>s between Newt<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> m<strong>on</strong>omial bases,(2) m<strong>on</strong>omial <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g>,(3) Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g>.Our first goal is to propose improved algorithms for some <strong>of</strong> these operati<strong>on</strong>s:specifically, we describe a faster c<strong>on</strong>versi<strong>on</strong> algorithm, from which we deducean improved Newt<strong>on</strong> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> algorithm. When the sample <strong>points</strong> bear no<strong>special</strong> structure, our algorithms still have an asymptotic complexity bel<strong>on</strong>gingto the class O(M(n) log(n)), but they are faster than the previous <strong>on</strong>es by ac<strong>on</strong>stant factor. To establish comparis<strong>on</strong>s, <str<strong>on</strong>g>and</str<strong>on</strong>g> for the sake <strong>of</strong> completeness,we thus will detail the c<strong>on</strong>stants hidden behind the Big-Oh notati<strong>on</strong> in thecomplexity estimates, for our algorithms as well as for <strong>on</strong>e <strong>of</strong> ?.Our sec<strong>on</strong>d objective is to obtain better algorithms for <strong>special</strong> cases <strong>of</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g><strong>points</strong> x. Indeed, it is well known that the divided difference formulas usedin Newt<strong>on</strong> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> simplify when the <strong>points</strong> form an arithmetic or a geometricprogressi<strong>on</strong>; we will show how to obtain improved complexity estimatesbased <strong>on</strong> such simplificati<strong>on</strong>s. We also discuss applicati<strong>on</strong>s to computati<strong>on</strong>swith differential operators <str<strong>on</strong>g>and</str<strong>on</strong>g> polynomial matrix multiplicati<strong>on</strong>.Table 1 summarizes the best results known to us <strong>on</strong> the three questi<strong>on</strong>s menti<strong>on</strong>edabove; we now review its columns in turn <str<strong>on</strong>g>and</str<strong>on</strong>g> detail our c<strong>on</strong>tributi<strong>on</strong>s.In what follows, all results <strong>of</strong> type O(M(n) log(n)) are valid when n is a power<strong>of</strong> 2. The results for the arithmetic progressi<strong>on</strong> case require that the base fieldhas characteristic 0 or larger than n.The general case. The first column gives estimates for arbitrary sample<strong>points</strong>; we call this case the general case. In this situati<strong>on</strong>, c<strong>on</strong>versi<strong>on</strong> algorithms<str<strong>on</strong>g>and</str<strong>on</strong>g> m<strong>on</strong>omial <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> / <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> algorithms are designed first,<str<strong>on</strong>g>and</str<strong>on</strong>g> algorithms for Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> are deduced by compositi<strong>on</strong>.3


Questi<strong>on</strong>general caseNewt<strong>on</strong> to m<strong>on</strong>omial basis (NtoM)M<strong>on</strong>omial to Newt<strong>on</strong> basis (MtoN)M(n) log(n) + O(M(n))M(n) log(n) + O(M(n))M<strong>on</strong>omial <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> (MtoV)M<strong>on</strong>omial <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> (VtoM)3/2 M(n) log(n) + O(M(n))5/2 M(n) log(n) + O(M(n))Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> (NtoV)Newt<strong>on</strong> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> (VtoN)2 M(n) log(n) + O(M(n))3 M(n) log(n) + O(M(n))Questi<strong>on</strong> arithmetic case geometric caseNtoM M(n) log(n) + O(M(n)) M(n) + O(n)MtoN M(n) log(n) + O(M(n)) M(n) + O(n)MtoV M(n) log(n) + O(M(n)) 2 M(n) + O(n)VtoM M(n) log(n) + O(M(n)) 2 M(n) + O(n)NtoV M(n) + O(n) M(n) + O(n)VtoN M(n) + O(n) M(n) + O(n)Table 1Complexity results <strong>on</strong> c<strong>on</strong>versi<strong>on</strong>s between Newt<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> m<strong>on</strong>omial bases, m<strong>on</strong>omial<str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g>, Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g>.The c<strong>on</strong>versi<strong>on</strong> algorithm from the Newt<strong>on</strong> to the m<strong>on</strong>omial basis (first linein the table) is from ?, who also gives its bit complexity when the base fieldis Q. As to the c<strong>on</strong>versi<strong>on</strong> from the m<strong>on</strong>omial to the Newt<strong>on</strong> basis (sec<strong>on</strong>dline in the table), our algorithm is new, to the best <strong>of</strong> our knowledge. It relies<strong>on</strong> the so-called transpositi<strong>on</strong> principle, which finds its origins in Tellegen’stheorem <strong>on</strong> electrical networks (????). ? also presents an algorithm for thistask, but its complexity is higher by a c<strong>on</strong>stant factor.The results <strong>on</strong> m<strong>on</strong>omial <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> (third <str<strong>on</strong>g>and</str<strong>on</strong>g> fourth lines)4


appeared in (?) <str<strong>on</strong>g>and</str<strong>on</strong>g> improve the classical results by (???) <str<strong>on</strong>g>and</str<strong>on</strong>g> ?.The last two operati<strong>on</strong>s (fifth <str<strong>on</strong>g>and</str<strong>on</strong>g> sixth line <strong>of</strong> the upper table) are Newt<strong>on</strong><str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g>; the algorithms for these tasks are easily deducedfrom those menti<strong>on</strong>ed before (lines 1–4), by compositi<strong>on</strong>. Note however thatthe c<strong>on</strong>stants do not add up, due to some shared precomputati<strong>on</strong>s.Recall that these complexity results were already known to lie in the classO(M(n) log(n)), see for instance ?; the precise estimate in the fifth line isobtained by combining algorithms <strong>of</strong> (?) <str<strong>on</strong>g>and</str<strong>on</strong>g> (?), whereas that in the last linerelies <strong>on</strong> our improved c<strong>on</strong>versi<strong>on</strong> algorithm.The arithmetic progressi<strong>on</strong> case. In the arithmetic progressi<strong>on</strong> case, asharp complexity statement was given in (?, Th. 3.2 <str<strong>on</strong>g>and</str<strong>on</strong>g> Th. 3.4), whichproves that Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> at an arithmetic progressi<strong>on</strong>can be d<strong>on</strong>e within M(n) + O(n) operati<strong>on</strong>s. That article also analyzes the bitcomplexity when the base field is Q.In the arithmetic progressi<strong>on</strong> case, the basis c<strong>on</strong>versi<strong>on</strong> algorithms developedin the general case remain unchanged. Using Gerhard’s result <str<strong>on</strong>g>and</str<strong>on</strong>g> these c<strong>on</strong>versi<strong>on</strong>algorithms, we then deduce new, faster algorithms for m<strong>on</strong>omial <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g><str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> <strong>on</strong> an arithmetic progressi<strong>on</strong>.We apply these algorithms to c<strong>on</strong>versi<strong>on</strong>s between the m<strong>on</strong>omial <str<strong>on</strong>g>and</str<strong>on</strong>g> thefalling factorial bases. This yields fast algorithms for computing Stirling numbers,which in turn are the basis for fast computati<strong>on</strong> with linear differentialoperators. Also, we discuss the transpose <strong>of</strong> the algorithm <strong>of</strong> ?, which is shownto be closely related to an algorithm <strong>of</strong> ? for polynomial shift.The geometric case. In the geometric progressi<strong>on</strong> case, we show that thecomplexities <strong>of</strong> Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> drop to M(n) + O(n) aswell. The improvements are obtained by (mainly) translating into equalities<strong>of</strong> generating series the formulas for divided q-differences, similarly to whatis d<strong>on</strong>e by ? for the arithmetic case. By c<strong>on</strong>sidering the transposed problems,we deduce that the c<strong>on</strong>versi<strong>on</strong>s between the Newt<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> the m<strong>on</strong>omial basescan be d<strong>on</strong>e with the same asymptotic complexity <strong>of</strong> M(n) + O(n) operati<strong>on</strong>sin the base field.These results have c<strong>on</strong>sequences for <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> in the m<strong>on</strong>omialbasis. It is known (???) that evaluating a polynomial <strong>of</strong> degree less than n<strong>on</strong> n <strong>points</strong> in geometric progressi<strong>on</strong> has cost 2 M(n) + O(n) (the algorithmgiven by ? actually has complexity more than 2 M(n) + O(n), but using themiddle product operati<strong>on</strong> <strong>of</strong> ? yields the announced complexity bound). An5


2 PreliminariesIn this secti<strong>on</strong>, we introduce two basic tools: the subproduct tree T associatedto the <strong>points</strong> x 0 , . . . , x n−1 <str<strong>on</strong>g>and</str<strong>on</strong>g> the noti<strong>on</strong> <strong>of</strong> transposed algorithm.2.1 The subproduct treeIn what follows, we suppose that n is a power <strong>of</strong> 2. The subproduct tree Tassociated to x 0 , . . . , x n−1 is then a complete binary tree, all whose nodesc<strong>on</strong>tain polynomials in k[x]. Let n = 2 m ; then T is defined as follows:• If m = 0, then T reduces to a single node, c<strong>on</strong>taining the polynomial x−x 0 .• If m > 0, let T 0 <str<strong>on</strong>g>and</str<strong>on</strong>g> T 1 be the trees associated to x 0 , . . . , x 2 m−1 −1 <str<strong>on</strong>g>and</str<strong>on</strong>g>x 2 m−1, . . . , x 2 m −1 respectively. Let M 0 <str<strong>on</strong>g>and</str<strong>on</strong>g> M 1 be the polynomials at theroots <strong>of</strong> T 0 <str<strong>on</strong>g>and</str<strong>on</strong>g> T 1 . Then T is the tree whose root c<strong>on</strong>tains the productM 0 M 1 <str<strong>on</strong>g>and</str<strong>on</strong>g> whose children are T 0 <str<strong>on</strong>g>and</str<strong>on</strong>g> T 1 .Alternately, <strong>on</strong>e can represent the subproduct tree T as a 2-dimensi<strong>on</strong>al arrayT i,j , with 0 ≤ i ≤ m, 0 ≤ j ≤ 2 m−i − 1. ThenT i,j =2 i (j+1)−1∏l=2 i j(x − x l ).For instance, if m = 2 (<str<strong>on</strong>g>and</str<strong>on</strong>g> thus n = 4), the tree associated to x 0 , x 1 , x 2 , x 3 isgiven byT 0,0 = x − x 0 , T 0,1 = x − x 1 , T 0,2 = x − x 2 , T 0,3 = x − x 3 ,T 1,0 = (x − x 0 )(x − x 1 ), T 1,1 = (x − x 2 )(x − x 3 ),T 2,0 = (x − x 0 )(x − x 1 )(x − x 2 )(x − x 3 ).The following result was first pointed out by ?, see also (?).Propositi<strong>on</strong> 1 The subproduct tree associated to x 0 , . . . , x n−1 can be computedwithin 1/2 M(n) log(n) + O(n log(n)) base field operati<strong>on</strong>s.Since in what follows a particular attenti<strong>on</strong> is payed to <strong>special</strong> <strong>sets</strong> <strong>of</strong> <strong>points</strong> x,<strong>on</strong>e may w<strong>on</strong>der whether the c<strong>on</strong>structi<strong>on</strong> <strong>of</strong> the subproduct tree can bespeeded-up in such structured situati<strong>on</strong>s. If the <strong>points</strong> x form a geometricsequence, we show that an accelerati<strong>on</strong> (by a logarithmic factor) can indeedbe obtained. This result is stated for completeness in Lemma 1 below; however,we will not make use <strong>of</strong> it in the sequel, since our fast algorithms in7


Secti<strong>on</strong> 5 for <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> <strong>on</strong> geometric sequences do not rely<strong>on</strong> the use <strong>of</strong> the subproduct trees. In c<strong>on</strong>trast, in the case <strong>of</strong> <strong>points</strong> in anarithmetic progressi<strong>on</strong>, we are not able to obtain a similar improvement up<strong>on</strong>Propositi<strong>on</strong> 1. Note that a gain in the arithmetic case would be <strong>of</strong> real interest,as some <strong>of</strong> our algorithms in Secti<strong>on</strong> 4 share the c<strong>on</strong>structi<strong>on</strong> <strong>of</strong> T as aprecomputati<strong>on</strong>.Lemma 1 Let k be a field <str<strong>on</strong>g>and</str<strong>on</strong>g> let n be a power <strong>of</strong> 2. Let x i = q i , i = 0, . . . , n−1be a geometric progressi<strong>on</strong> in k. Then, the nodes <strong>of</strong> the subproduct tree Tassociated to x can be computed within M(n) + O(n log(n)) operati<strong>on</strong>s in k.Pro<strong>of</strong>. The fact that the <strong>points</strong> x form a geometric progressi<strong>on</strong> implies that,at every level i, the nodes T i,j can be deduced from <strong>on</strong>e another by performinga homothety. Thus, our strategy is to determine the left-side nodes T i,0 first,then to obtain all the other nodes by polynomial homotheties.The left-side nodes T i,0 , for 0 ≤ i ≤ m, have degree 2 i <str<strong>on</strong>g>and</str<strong>on</strong>g> can be determined(together with the nodes T i,1 ) by a procedure based <strong>on</strong> the equalitiesT i,1 (x) = T i,0 (x/q 2i ) · q 4i , T i+1,0 (x) = T i,0 (x) · T i,1 (x), 0 ≤ i ≤ m − 1within ∑ (m−1i=0 M(2 i ) + O(2 i ) ) = M(n) + O(n) operati<strong>on</strong>s in k. Then, startingfrom T i,0 , the remaining desired nodes can be determined using the equalityT i,j (x) = T i,0(x/q2 i j ) q 4ij , for 1 ≤ i ≤ m − 2, 2 ≤ j ≤ 2 m−i − 1,for a total cost <strong>of</strong> at most ∑ m−2i=1 2 m−i O(2 i ) = O(n log(n)) operati<strong>on</strong>s in k.This finishes the pro<strong>of</strong> <strong>of</strong> the lemma.□Remarks. In the general case, the top polynomial T m,0 = (x − x 0 )(x −x 1 ) · · · (x − x n−1 ) (or, equivalently, all the elementary symmetric functi<strong>on</strong>s<strong>of</strong> x 0 , . . . , x n−1 ) can be computed in 1/2 M(n) log(n) + O(n log(n)) base fieldoperati<strong>on</strong>s, using the subproduct tree c<strong>on</strong>structi<strong>on</strong> recalled above. However,the pro<strong>of</strong> <strong>of</strong> Lemma 1 shows that better can be d<strong>on</strong>e when the <strong>points</strong> xform a geometric progressi<strong>on</strong>. Namely, in this case the c<strong>on</strong>structi<strong>on</strong> <strong>of</strong> thewhole tree can be avoided <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>on</strong>e can decrease the cost <strong>of</strong> computing T m,0to M(n) + O(n). Similarly, if the <strong>points</strong> x form an arithmetic progressi<strong>on</strong>, thepolynomial T m,0 can be computed within 2 M(n) + O(n) base field operati<strong>on</strong>s,provided k has characteristic zero or larger than n. Indeed, under this hypothesis,the node T i+1,0 can be deduced from T i,0 by a polynomial shift using thefast algorithm <strong>of</strong> ? (which we recall in Secti<strong>on</strong> 4). These useful facts seem notto have been menti<strong>on</strong>ed before in the classical computer algebra textbooks.As a final remark, note that, for some algorithms presented later, <strong>on</strong>ly theeven nodes T i,2j from the subproduct tree are necessary. If this is the case,8


<strong>on</strong>e is led to the natural questi<strong>on</strong>: can these polynomials be computed fasterthan all the subproduct tree? For the moment, we are unable to satisfactorilyanswer this questi<strong>on</strong>, even in the arithmetic <str<strong>on</strong>g>and</str<strong>on</strong>g> the geometric case.2.2 Transposed algorithmsIntroduced under this name by Kalt<strong>of</strong>en <str<strong>on</strong>g>and</str<strong>on</strong>g> Shoup, the transpositi<strong>on</strong> principleis an algorithmic theorem, with the following c<strong>on</strong>tent: given an algorithm thatperforms an (r + n) × r matrix-vector product, <strong>on</strong>e can deduce an algorithmwith the same complexity, up to O(n), <str<strong>on</strong>g>and</str<strong>on</strong>g> which performs the transposedmatrix-vector product. See for instance ? for a precise statement <str<strong>on</strong>g>and</str<strong>on</strong>g> ? forhistorical notes <str<strong>on</strong>g>and</str<strong>on</strong>g> further comments <strong>on</strong> this questi<strong>on</strong>.For this result to apply, some restricti<strong>on</strong>s must be imposed <strong>on</strong> the computati<strong>on</strong>almodel; for our purposes, it will suffice to impose a c<strong>on</strong>diti<strong>on</strong> <strong>on</strong> theunivariate polynomial multiplicati<strong>on</strong> algorithm. Namely, we require that tocompute the product <strong>of</strong> a polynomial a by a polynomial b, <strong>on</strong>ly linear operati<strong>on</strong>sin the coefficients <strong>of</strong> b are d<strong>on</strong>e. This is no str<strong>on</strong>g restricti<strong>on</strong>, since allclassical multiplicati<strong>on</strong> algorithms menti<strong>on</strong>ed in the introducti<strong>on</strong> satisfy thisassumpti<strong>on</strong>.We can then introduce our basic transposed operati<strong>on</strong>. Let us denote by k[x] ithe vector space <strong>of</strong> polynomials <strong>of</strong> degree at most i; then given a ∈ k[x] <strong>of</strong>degree r, we denote by mul t (n, a, .) : k[x] r+n → k[x] n the transpose <strong>of</strong> the(k-linear) multiplicati<strong>on</strong>-by-a map k[x] n → k[x] r+n .Various algorithms for computing the transposed multiplicati<strong>on</strong> are detailedin ??. The transpositi<strong>on</strong> principle implies that under the assumpti<strong>on</strong> above,whatever the algorithm used for polynomial multiplicati<strong>on</strong> is, the cost <strong>of</strong> thedirect <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>of</strong> the transposed multiplicati<strong>on</strong> are equal, up to O(r) operati<strong>on</strong>sin k; for instance, if n < r, the complexity <strong>of</strong> mul t (n, a, .) is M(r) + O(r).All algorithms to be transposed later rely mainly <strong>on</strong> polynomial multiplicati<strong>on</strong>,as well as other basic operati<strong>on</strong>s such as multiplicati<strong>on</strong> by diag<strong>on</strong>al matricesor additi<strong>on</strong>s. We now know how to perform transposed polynomial multiplicati<strong>on</strong>s,<str<strong>on</strong>g>and</str<strong>on</strong>g> all other basic operati<strong>on</strong>s are easily transposed; following ?, a basicset <strong>of</strong> mechanical transformati<strong>on</strong>s will then easily yield all required transposedalgorithms.9


3 Algorithms for arbitrary sample <strong>points</strong>In this secti<strong>on</strong>, we treat the questi<strong>on</strong>s <strong>of</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> in them<strong>on</strong>omial <str<strong>on</strong>g>and</str<strong>on</strong>g> Newt<strong>on</strong> bases, <str<strong>on</strong>g>and</str<strong>on</strong>g> base change algorithms, for an arbitrarychoice <strong>of</strong> <strong>points</strong> x = x 0 , . . . , x n−1 . Recall that n is supposed to be a power<strong>of</strong> 2.3.1 C<strong>on</strong>versi<strong>on</strong>s between Newt<strong>on</strong> basis <str<strong>on</strong>g>and</str<strong>on</strong>g> m<strong>on</strong>omial basisWe first estimate the complexity for the c<strong>on</strong>versi<strong>on</strong>s between m<strong>on</strong>omial <str<strong>on</strong>g>and</str<strong>on</strong>g>Newt<strong>on</strong> bases. The results are summarized in the theorem below:Theorem 1 Let k be a field, let x = x 0 , . . . , x n−1 be n elements <strong>of</strong> k <str<strong>on</strong>g>and</str<strong>on</strong>g> letF ∈ k[x] <strong>of</strong> degree less than n. Suppose that n is a power <strong>of</strong> 2 <str<strong>on</strong>g>and</str<strong>on</strong>g> that thesubproduct tree associated to the <strong>points</strong> x has been precomputed. Then:• given the coefficients <strong>of</strong> F in the Newt<strong>on</strong> basis, <strong>on</strong>e can recover the coefficients<strong>of</strong> F in the m<strong>on</strong>omial basis using 1/2 M(n) log(n) + O(M(n)) operati<strong>on</strong>sin k.• given the coefficients <strong>of</strong> F in the m<strong>on</strong>omial basis, <strong>on</strong>e can recover the coefficients<strong>of</strong> F in the Newt<strong>on</strong> basis using 1/2 M(n) log(n)+O(M(n)) operati<strong>on</strong>sin k.Taking into account the complexity <strong>of</strong> computing the subproduct tree statedin Propositi<strong>on</strong> 1, we obtain the estimates given in the first column, first tworows, in Table 1.From Newt<strong>on</strong> basis to m<strong>on</strong>omial basis. Let F be a polynomial <strong>of</strong> degreeless than n = 2 m <str<strong>on</strong>g>and</str<strong>on</strong>g> f = f 0 , . . . , f n−1 its coefficients in the Newt<strong>on</strong> basis.Given f, we want to recover the coefficients <strong>of</strong> F in the m<strong>on</strong>omial basis. Tothis effect, we write the equalityF = F 0 + (x − x 0 ) · · · (x − x n/2−1 )F 1 ,withF 0 = f 0 + f 1 (x − x 0 ) + · · · + f n/2−1 (x − x 0 ) · · · (x − x n/2−2 ),F 1 = f n/2 + f n/2+1 (x − x n/2 ) + · · · + f n−1 (x − x n/2 ) · · · (x − x n−2 ).Using this decompositi<strong>on</strong>, the following c<strong>on</strong>versi<strong>on</strong> algorithm can be deduced.On input the coefficients f = f 0 , . . . , f n−1 <str<strong>on</strong>g>and</str<strong>on</strong>g> the subproduct tree T associatedto the <strong>points</strong> x 0 , . . . , x n−1 , it outputs the expansi<strong>on</strong> <strong>of</strong> F <strong>on</strong> the m<strong>on</strong>omialbasis. The following algorithm works in place, since the input list f is modified10


at each iterati<strong>on</strong> (for type c<strong>on</strong>sistency we might see the input c<strong>on</strong>stants aspolynomials <strong>of</strong> degree zero).Newt<strong>on</strong>ToM<strong>on</strong>omial(T , f)for i ← 0 to m − 1 d<strong>of</strong>or j ← 0 to 2 m−i−1 − 1 d<strong>of</strong> j ← f 2j + T i,2j f 2j+1 ;return f 0 ;Let us assume that the even nodes T i,2j <strong>of</strong> the subproduct tree associated to the<strong>points</strong> x 0 , . . . , x n−1 have been precomputed. Then, the number <strong>of</strong> operati<strong>on</strong>sin k used by algorithm Newt<strong>on</strong>ToM<strong>on</strong>omial is upper bounded bym−1 ∑i=0⎛2 m−i−1 ∑ −1 (⎝ M(2 i ) + O(2 i ) )⎞ ⎠ = 1/2 M(n) log(n) + O(n log(n)).j=0This proves the first part <strong>of</strong> Theorem 1. This algorithm was already presentedin (?, Th. 2.5), but the more precise complexity estimate given here is neededin the following.Transposed c<strong>on</strong>versi<strong>on</strong> algorithm. The c<strong>on</strong>versi<strong>on</strong> algorithm describedabove computes a base change map, which is linear in F . In what follows, weare interested in computing the inverse <strong>of</strong> this map, that is, the c<strong>on</strong>verse basechange. As a first step, we now discuss the transposed map.C<strong>on</strong>structing the subproduct tree associated to the <strong>points</strong> x is a precomputati<strong>on</strong>,which does not depend <strong>on</strong> the polynomial F , <str<strong>on</strong>g>and</str<strong>on</strong>g> is not transposed.As to the two nested loops, we use the transposed multiplicati<strong>on</strong> introducedpreviously. With this operati<strong>on</strong>, we obtain by a mechanical transformati<strong>on</strong>the following transposed c<strong>on</strong>versi<strong>on</strong> algorithm: increasing loop indices becomedecreasing indices, polynomial multiplicati<strong>on</strong>s become transposed multiplicati<strong>on</strong>s,<str<strong>on</strong>g>and</str<strong>on</strong>g> additi<strong>on</strong>s become duplicati<strong>on</strong>s.The direct versi<strong>on</strong> takes the subproduct tree <str<strong>on</strong>g>and</str<strong>on</strong>g> a list <strong>of</strong> coefficients as input<str<strong>on</strong>g>and</str<strong>on</strong>g> gives its output in the form <strong>of</strong> a polynomial; the transposed algorithmtakes the subproduct tree <str<strong>on</strong>g>and</str<strong>on</strong>g> a polynomial as input <str<strong>on</strong>g>and</str<strong>on</strong>g> outputs a list <strong>of</strong>c<strong>on</strong>stant polynomials, that is, <strong>of</strong> c<strong>on</strong>stants.11


TNewt<strong>on</strong>ToM<strong>on</strong>omial(T , F )c 0 ← F ;for i ← m − 1 downto 0 d<strong>of</strong>or j ← 2 m−i−1 − 1 downto 0 doc 2j+1 ← mul t (2 i − 1, T i,2j , c j );c 2j ← c j mod x 2i ;return c 0 , . . . , c 2 m −1;It follows from either a direct analysis or the transpositi<strong>on</strong> principle that, ifthe subproduct tree is already known, the complexity <strong>of</strong> this algorithm is thesame as that <strong>of</strong> the direct <strong>on</strong>e, that is, 1/2 M(n) log(n)+O(n log(n)) base fieldoperati<strong>on</strong>s.From m<strong>on</strong>omial basis to Newt<strong>on</strong> basis. We can now resume our study<strong>of</strong> c<strong>on</strong>versi<strong>on</strong> algorithms. Let F be a polynomial <strong>of</strong> degree less than n, whosecoefficients <strong>on</strong> the m<strong>on</strong>omial basis are known; we want to recover the coefficients<strong>of</strong> F <strong>on</strong> the Newt<strong>on</strong> basis 1, x − x 0 , . . . , (x − x 0 ) · · · (x − x n−2 ).A natural way to do that is based <strong>on</strong> the following remark: if we write F asfollows:F = F 0 + (x − x 0 ) · · · (x − x n/2−1 )F 1 ,then it is enough to recover the coefficients <strong>of</strong> F 0 <str<strong>on</strong>g>and</str<strong>on</strong>g> F 1 <strong>on</strong> the Newt<strong>on</strong> bases1, x−x 0 , . . . , (x−x 0 ) · · · (x−x n/2−2 ) <str<strong>on</strong>g>and</str<strong>on</strong>g> 1, x−x n/2 , . . . , (x−x n/2 ) · · · (x−x n−2 )respectively.Using this remark, <strong>on</strong>e can deduce a c<strong>on</strong>versi<strong>on</strong> algorithm based <strong>on</strong> (recursive)divisi<strong>on</strong> with quotient <str<strong>on</strong>g>and</str<strong>on</strong>g> remainder by the even nodes T i,2j , see (?, Theorem2.4) for details. Using the idea in (?, p. 22–24) to save c<strong>on</strong>stant factors inthe divisi<strong>on</strong> by the tree nodes, the cost <strong>of</strong> the resulting algorithm (withoutcounting the precomputati<strong>on</strong> <strong>of</strong> the subproduct tree) is upper bounded by2 M(n) log(n) + O(n log(n)).In what follows, we obtain an algorithm <strong>of</strong> better complexity by studyingthe transpose <strong>of</strong> this c<strong>on</strong>versi<strong>on</strong> algorithm. Indeed, we will show that thistransposed map mainly amounts to a c<strong>on</strong>versi<strong>on</strong> from Newt<strong>on</strong> to m<strong>on</strong>omialbasis <strong>on</strong> a modified set <strong>of</strong> <strong>points</strong>; transposing backwards will yield the desiredresult. Let us notice that the same approach – that is, looking at the dualproblem – was already successfully applied by ? to speed up algorithms formultipoint <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> in the m<strong>on</strong>omial basis.Our starting point is the following result (where we take the usual c<strong>on</strong>venti<strong>on</strong>that the empty sum is zero).12


TM<strong>on</strong>omialToNewt<strong>on</strong>( ˜T , f)I ← 1/rev(n, T m,0 ) mod x n ;Q ← Newt<strong>on</strong>ToM<strong>on</strong>omial( ˜T , ˜f);˜Q ← rev(n − 1, Q);G ← I ˜Q mod x n ;return G;By transpositi<strong>on</strong>, we deduce the following algorithm for computing the matrixvectorproduct by A. All operati<strong>on</strong>s that depend linearly in f are transposed,<str<strong>on</strong>g>and</str<strong>on</strong>g> their order is reversed; thus, we now use as a subroutine the algorithmTNewt<strong>on</strong>ToM<strong>on</strong>omial presented in the previous paragraphs. Note that thecomputati<strong>on</strong> <strong>of</strong> I is not transposed, since it does not depend <strong>on</strong> f. The resultingalgorithm takes as input a polynomial F <str<strong>on</strong>g>and</str<strong>on</strong>g> returns its coefficients in theNewt<strong>on</strong> basis.M<strong>on</strong>omialToNewt<strong>on</strong>( ˜T , F )I ← 1/rev(n, T m,0 ) mod x n ;˜Q ← mul t (n − 1, I, F );Q ← rev(n − 1, ˜Q);f n−1 , . . . , f 0 ← TNewt<strong>on</strong>ToM<strong>on</strong>omial( ˜T , Q);return f 0 , . . . , f n−1 ;This algorithm uses the subproduct tree ˜T . However, this is not a str<strong>on</strong>glimitati<strong>on</strong>: if the subproduct tree T associated to the <strong>points</strong> x 0 , . . . , x n−1 isalready known, then ˜T is obtained by reversing the order <strong>of</strong> the siblings <strong>of</strong>each node in T .To c<strong>on</strong>clude, using the first part <strong>of</strong> Theorem 1 <str<strong>on</strong>g>and</str<strong>on</strong>g> either the transpositi<strong>on</strong>principle or a direct analysis, we deduce that both algorithms require1/2 M(n) log(n) + O(M(n)) operati<strong>on</strong>s in k, since the additi<strong>on</strong>al power seriesoperati<strong>on</strong>s have cost in O(M(n)). This is to be compared with the previousestimate <strong>of</strong> 2 M(n) log(n) + O(n log(n)) for the algorithm based <strong>on</strong> Euclide<str<strong>on</strong>g>and</str<strong>on</strong>g>ivisi<strong>on</strong>. This estimate proves the sec<strong>on</strong>d asserti<strong>on</strong> in Theorem 1.3.2 Completing the tableWe c<strong>on</strong>clude this secti<strong>on</strong> by filling the last entries <strong>of</strong> the first column in Table 1.Using the results above <str<strong>on</strong>g>and</str<strong>on</strong>g> the algorithms <strong>of</strong> ?, this is an immediate task.14


Evaluati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> <strong>on</strong> the m<strong>on</strong>omial basis. Let F ∈ k[x]be a polynomial <strong>of</strong> degree less than n, let x 0 , . . . , x n−1 be n pairwise distinct<strong>points</strong> in k <str<strong>on</strong>g>and</str<strong>on</strong>g> denote v i = F (x i ). The questi<strong>on</strong>s <strong>of</strong> multipoint <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g><str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> in the m<strong>on</strong>omial basis c<strong>on</strong>sists in computing the coefficients <strong>of</strong> Fin the m<strong>on</strong>omial representati<strong>on</strong> from the values v 0 , . . . , v n−1 , <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>versely.Fast algorithms for these tasks were given by (??), then successively improvedby (?) <str<strong>on</strong>g>and</str<strong>on</strong>g> (?). All these algorithms are based <strong>on</strong> (recursive) polynomialremaindering <str<strong>on</strong>g>and</str<strong>on</strong>g> have complexity O(M(n) log(n)). Recently, different algorithms,based <strong>on</strong> the use <strong>of</strong> transposed operati<strong>on</strong>s, have been designed in (?,Secti<strong>on</strong> 6) <str<strong>on</strong>g>and</str<strong>on</strong>g> led to improved complexity bounds, by c<strong>on</strong>stant factors. Forthe sake <strong>of</strong> completeness, we summarize the corresp<strong>on</strong>ding results <strong>of</strong> ? in thetheorem below:Theorem 2 Let k be a field, let x = x 0 , . . . , x n−1 be pairwise distinct elements<strong>of</strong> k <str<strong>on</strong>g>and</str<strong>on</strong>g> let F ∈ k[x] <strong>of</strong> degree less than n. Suppose that n is a power <strong>of</strong> 2<str<strong>on</strong>g>and</str<strong>on</strong>g> that the subproduct tree associated to the <strong>points</strong> x has been precomputed.Then:• the <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <strong>of</strong> F at the <strong>points</strong> x can be d<strong>on</strong>e using M(n) log(n)+O(M(n))operati<strong>on</strong>s in k.• the <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> <strong>of</strong> F at the <strong>points</strong> x can be d<strong>on</strong>e using 2 M(n) log(n) +O(M(n)) operati<strong>on</strong>s in k.Taking into account the complexity <strong>of</strong> computing the subproduct tree, whichis within 1/2 M(n) log(n)+O(M(n)) operati<strong>on</strong>s, we obtain the estimates givenin the first column, middle rows, in Table 1.We c<strong>on</strong>clude by a remark. Interpolati<strong>on</strong> requires to evaluate the derivative <strong>of</strong>∏ n−1i=0 (x − x i ) <strong>on</strong> all <strong>points</strong> x, which c<strong>on</strong>tributes for M(n) log(n) + O(M(n)) inthe estimate above. In the case <strong>of</strong> an arithmetic or a geometric progressi<strong>on</strong>,these values can be computed in linear time: we refer the reader to (?) forthe arithmetic case <str<strong>on</strong>g>and</str<strong>on</strong>g> leave him the geometric case as an exercise. Thus thecomplexity <strong>of</strong> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> drops to(1/2 + 1) M(n) log(n) + O(M(n)) = 3/2 M(n) log(n) + O(M(n))in these cases. In Secti<strong>on</strong>s 4 <str<strong>on</strong>g>and</str<strong>on</strong>g> 5 we show that <strong>on</strong>e can actually do better inthese two <strong>special</strong> cases.Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g>. Combining the results <strong>of</strong> Secti<strong>on</strong>s3.1 <str<strong>on</strong>g>and</str<strong>on</strong>g> 3.2, we deduce the following result c<strong>on</strong>cerning the complexities <strong>of</strong>Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> <strong>on</strong> an arbitrary set <strong>of</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <strong>points</strong>.Theorem 3 Let k be a field, let x = x 0 , . . . , x n−1 be pairwise distinct elements15


<strong>of</strong> k <str<strong>on</strong>g>and</str<strong>on</strong>g> let F ∈ k[x] <strong>of</strong> degree less than n. Suppose that n is a power <strong>of</strong> 2<str<strong>on</strong>g>and</str<strong>on</strong>g> that the subproduct tree associated to the <strong>points</strong> x i has been precomputed.Then:• Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <strong>of</strong> F at the <strong>points</strong> x can be d<strong>on</strong>e in 3/2 M(n) log(n) +O(M(n)) operati<strong>on</strong>s in k.• Newt<strong>on</strong> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> <strong>of</strong> F at the <strong>points</strong> x can be d<strong>on</strong>e in 5/2 M(n) log(n) +O(M(n)) operati<strong>on</strong>s in k.Taking into account the complexity <strong>of</strong> computing the subproduct tree, thiscompletes the entries <strong>of</strong> the first column <strong>of</strong> Table 1.4 Special case <strong>of</strong> an arithmetic progressi<strong>on</strong>In this secti<strong>on</strong> we focus <strong>on</strong> the <strong>special</strong> case <strong>of</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <strong>points</strong> in arithmeticprogressi<strong>on</strong>, <str<strong>on</strong>g>and</str<strong>on</strong>g> show that many <strong>of</strong> the complexity estimates above can beimproved in this case.We begin by recalling a result taken from (?, Secti<strong>on</strong> 3), which shows that thecomplexities <strong>of</strong> Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> drop to M(n) + O(n) inthis <strong>special</strong> case, <str<strong>on</strong>g>and</str<strong>on</strong>g> we point out the link between these algorithms <str<strong>on</strong>g>and</str<strong>on</strong>g> thealgorithm for shift <strong>of</strong> polynomials <strong>of</strong> ?. Next, using the transposed algorithm <strong>of</strong>Secti<strong>on</strong> 3.1, we show how to improve (by c<strong>on</strong>stant factors) the complexities <strong>of</strong><str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> in the m<strong>on</strong>omial basis <strong>on</strong> an arithmetic progressi<strong>on</strong>.We c<strong>on</strong>clude by an applicati<strong>on</strong> to computati<strong>on</strong>s with linear differentialoperators.Newt<strong>on</strong> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g>. We first recall the algorithm<strong>of</strong> (?, Secti<strong>on</strong> 3): this gives the last two entries <strong>of</strong> the sec<strong>on</strong>d column, inTable 1. For further discussi<strong>on</strong>, we detail the pro<strong>of</strong>.Propositi<strong>on</strong> 2 Suppose that k is a field <strong>of</strong> characteristic 0 or larger than n.Let h be a n<strong>on</strong>-zero element in k. Then, Newt<strong>on</strong> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g><strong>of</strong> a polynomial <strong>of</strong> degree n <strong>on</strong> the arithmetic sequence x i = x 0 + ih, fori = 0, . . . , n − 1 can be d<strong>on</strong>e using M(n) + O(n) operati<strong>on</strong>s in k.Pro<strong>of</strong>. Let F be a polynomial <strong>of</strong> degree less than n, v = v 0 , . . . , v n−1 the valuesF (x i ) <str<strong>on</strong>g>and</str<strong>on</strong>g> f = f 0 , . . . , f n−1 the coefficients <strong>of</strong> F <strong>on</strong> the Newt<strong>on</strong> basis associatedto the <strong>points</strong> x = x 0 , . . . , x n−1 . Evaluating Formula (1) at x, we deduce the16


following equalities relating the values v <str<strong>on</strong>g>and</str<strong>on</strong>g> the coefficients f:v 0 = f 0v 1 = f 0 + hf 1v 2 = f 0 + 2hf 1 + (2h · h)f 2v 3 = f 0 + 3hf 1 + (3h · 2h)f 2 + (3h · 2h · h)f 3 . . .They suggests to introduce the auxiliary sequence w = w 0 , . . . , w n−1 definedbyw i = v i, i = 0, . . . , n − 1.i!hi Note that the sequences v <str<strong>on</strong>g>and</str<strong>on</strong>g> w can be deduced from <strong>on</strong>e another for O(n)base field operati<strong>on</strong>s. Using the sequence w, the relati<strong>on</strong>s above becomeIntroducing the generating seriesW =n−1 ∑i=0w i = ∑w i x i , F =j+k=in−1 ∑i=01h k k! f j.f i x i , S =n−1 ∑i=01i!h i xi ,all relati<strong>on</strong>s above are summarized in the equati<strong>on</strong> W = F S modulo x n .Since S is the truncati<strong>on</strong> <strong>of</strong> exp(x/h), its inverse S −1 is the truncati<strong>on</strong> <strong>of</strong>exp(−x/h), so multiplying or dividing by S modulo x n can be d<strong>on</strong>e in M(n) +O(n) base field operati<strong>on</strong>s. We deduce that W <str<strong>on</strong>g>and</str<strong>on</strong>g> F can be computed from<strong>on</strong>e another using M(n) + O(n) base field operati<strong>on</strong>s. This proves the propositi<strong>on</strong>.□Let us make a few comments regarding the previous algorithm. The problem<strong>of</strong> Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <strong>on</strong> the arithmetic sequence x i = x 0 + ih is closely relatedto that <strong>of</strong> Taylor shift by 1/h. More precisely, the matrix Newt<strong>on</strong> h <strong>of</strong>Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> is equal, up to multiplicati<strong>on</strong> by diag<strong>on</strong>al matrices, to thetranspose <strong>of</strong> the matrix Shift 1/h representing the map F (x) ↦→ F (x + 1/h) inthe m<strong>on</strong>omial basis. Indeed, the following matrix equality is easy to infer:)Newt<strong>on</strong> h = Diag(1, h, h 2 , . . . , h n−1()· Shift t 1/h · Diag 0!, 1!, . . . , (n−1)! . (2)In the same vein, <strong>on</strong>e can also interpret Newt<strong>on</strong> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> as the transpose<strong>of</strong> Taylor shift by −1/h (up to diag<strong>on</strong>al matrices). A simple way to see thisis to take the inverse <strong>of</strong> Equati<strong>on</strong> (2) <str<strong>on</strong>g>and</str<strong>on</strong>g> to use the equality between Shift −11/h<str<strong>on</strong>g>and</str<strong>on</strong>g> Shift −1/h .Now, over fields <strong>of</strong> characteristic zero or larger than n, a classical algorithm<strong>of</strong> ? solves the Taylor shift problem within M(n) + O(n) operati<strong>on</strong>s. Given adegree n − 1 polynomial F (x) = ∑ n−1i=0 f i x i , the algorithm in ? computes the17


Applicati<strong>on</strong>s. Our initial interest in improving <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g><strong>on</strong> the <strong>points</strong> <strong>of</strong> an arithmetic progressi<strong>on</strong> was motivated by the study <strong>of</strong> linearrecurrences with polynomial coefficients presented in (??): the algorithmstherein can benefit from any improvement <strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> <strong>on</strong>an arithmetic progressi<strong>on</strong>. The cryptographic-sized record obtained by ? requiresto work in degree several tens <strong>of</strong> thous<str<strong>on</strong>g>and</str<strong>on</strong>g>s, <str<strong>on</strong>g>and</str<strong>on</strong>g> gaining even a c<strong>on</strong>stantfactor is interesting in such sizes.We c<strong>on</strong>clude this secti<strong>on</strong> by describing another applicati<strong>on</strong> which comes fromthe domain <strong>of</strong> exact computati<strong>on</strong>s with linear differential operators. Whilecomputing with such operators, it is sometimes easier to work with the Eulerderivati<strong>on</strong> δ = x ∂∂instead <strong>of</strong> the usual derivati<strong>on</strong> D = (see below for an∂x ∂xapplicati<strong>on</strong> example). We now estimate the complexity <strong>of</strong> performing this basechange.Corollary 2 Let n be a power <strong>of</strong> 2 <str<strong>on</strong>g>and</str<strong>on</strong>g> k a field <strong>of</strong> characteristic zero orlarger than n.Let L = ∑ n−1i=0 p i (x)δ i be a linear differential operator with polynomial coefficients<strong>of</strong> degree at most d, <str<strong>on</strong>g>and</str<strong>on</strong>g> let q 0 , . . . , q n−1 be the unique polynomials suchthat L = ∑ n−1i=0 q i (x)D i . Then all q i can be computed ind M(n) log(n) + O(d M(n))operati<strong>on</strong>s in k.Let L = ∑ n−1i=0 q i (x)D i be a linear differential operator with polynomial coefficients<strong>of</strong> degree at most d <str<strong>on</strong>g>and</str<strong>on</strong>g> let p 0 , . . . , p n−1 be the unique Laurent polynomialsin k[x, x −1 ] such that L = ∑ n−1i=0 p i (x)δ i . Then all p i can be computed in(n + d) M(n) log(n) + O((n + d) M(n))operati<strong>on</strong>s in k.Pro<strong>of</strong>. C<strong>on</strong>verting from the representati<strong>on</strong> in δ to that in D, or backwards,amounts to compute several matrix-vector products Sv or S −1 v, where S isthe n × n matrix⎡⎤1 1 1 1 . . . S 1,n0 1 3 7 . . . S 2,n0 0 1 6 . . . S 3,nS =0 0 0 1 . . . S .4,n⎢ .⎣ . . . . . ⎥. . ⎦0 0 0 0 . . . S n,n19


Indeed, <strong>on</strong>e has the equalities, seemingly known by (?), see also ?:δ 1 = xD,δ 2 = xD + x 2 D 2 ,δ 3 = xD + 3 x 2 D 2 + x 3 D 3 ,δ 4 = xD + 7 x 2 D 2 + 6 x 3 D 3 + x 4 D 4 ,δ 5 = xD + 15 x 2 D 2 + 25 x 3 D 3 + 10 x 4 D 4 + x 5 D 5 , . . .Let thus L = ∑ n−1i=0 p i (x)δ i , with p i (x) = ∑ dj=0 p i,j x j . Then in matrix form, Lwrites as the product⎡ ⎤⎡⎤ 1[ ] p 0,0 p 1,0 . . . p n−1,01 x . . . xd· ⎢⎥⎣ . . . . ⎦ ·⎢ ⎥⎣δ.. ⎦p 0,d p 1,d . . . p n−1,dδ n−1Thus, the previous equalities show that rewriting L in D amounts to perform dmatrix-vector products by the Stirling matrix S, followed by the additi<strong>on</strong> <strong>of</strong> dpolynomials, each <strong>of</strong> which having at most n n<strong>on</strong>-zero coefficients.C<strong>on</strong>versely, let L = ∑ n−1i=0 q i (x)D i be written as an operator <strong>of</strong> order n − 1in D, with coefficients q i (x) = ∑ dj=0 q i,j x j that are polynomials <strong>of</strong> degree atmost d. Expressing L in the matricial form:⎡⎤0 0 . . . q n−1,0. . . .⎡⎤L = [ x −(n−1) x −(n−2) . . . x ] 1d 0 q 1,0 . . . q n−1,dxḌ·q 0,0 q 1,1 . . . .·⎢⎥⎣ . ⎦⎢ .⎥ x n−1 D n−1⎣ . q 1,d . ⎦q 0,d 0 . . . 0shows that the problem <strong>of</strong> computing L as an operator in δ with rati<strong>on</strong>alfuncti<strong>on</strong> coefficients is reduced to n + d matrix-vector multiplicati<strong>on</strong>s by theinverse <strong>of</strong> the Stirling matrix.Thus, it suffices to estimate the cost <strong>of</strong> performing a matrix-vector productby S or its inverse. The entries (S i,j ) <strong>of</strong> the matrix S are the Stirling numbers<strong>of</strong> the sec<strong>on</strong>d kind; they satisfy the recurrence S i,j+1 = S i−1,j + iS i,j (while theentries <strong>of</strong> S −1 are, up to sign, the Stirling numbers <strong>of</strong> the first kind). Thesenumbers also represent the coordinates <strong>of</strong> ordinary powers 1, x, . . . , x n−1 inthe falling factorial basis 1, x 1 = x, . . . , x n−1 = x(x − 1) · · · (x − n + 2). For20


instance, for j = 1, . . . , 5 these relati<strong>on</strong>s writex 1 = x 1 ,x 2 = x 1 + x 2 ,x 3 = x 1 + 3 x 2 + x 3 ,x 4 = x 1 + 7 x 2 + 6 x 3 + x 4 ,x 5 = x 1 + 15 x 2 + 25 x 3 + 10 x 4 + x 5 , . . .Hence, the entries <strong>of</strong> the vector Sv represent the coefficients <strong>of</strong> the polynomial∑ n−1i=0 v i x i in the Newt<strong>on</strong> basis 1, x 1 , x 2 , . . . Similarly, computing S −1 v amountsto c<strong>on</strong>verting a polynomial from its Newt<strong>on</strong> representati<strong>on</strong> (in the fallingfactorial basis) to the m<strong>on</strong>omial <strong>on</strong>e. Using the c<strong>on</strong>versi<strong>on</strong> algorithms above,both c<strong>on</strong>versi<strong>on</strong>s can be d<strong>on</strong>e in complexity M(n) log(n) + O(M(n)), whichc<strong>on</strong>cludes the pro<strong>of</strong>.□As an applicati<strong>on</strong>, recall that the coefficients <strong>of</strong> a power series ∑ i≥0 s i x i whichis a soluti<strong>on</strong> <strong>of</strong> a linear differential operator L satisfy a linear recurrence, whosecoefficients can be read <strong>of</strong>f the coefficients <strong>of</strong> L when it is written in δ. Moreprecisely, if L = ∑ n−1i=0 p i (x)δ i has coefficients p i (x) = ∑ dj=0 p i,j x j , then letting˜p j (x) = ∑ n−1i=0 p i,j x i for 0 ≤ j ≤ d, the recurrence satisfied by the s i writes˜p d (i)s i + · · · + ˜p 0 (i + d)s i+d = 0, for all i ≥ 0.This remark yields a fast algorithm to c<strong>on</strong>vert a differential equati<strong>on</strong> <strong>of</strong> ordern − 1 in D with polynomial coefficients <strong>of</strong> degree at most d to the recurrencesatisfied by a power series soluti<strong>on</strong>. By the previous c<strong>on</strong>siderati<strong>on</strong>s, itscomplexity is asymptotic to (n + d) M(n) log(n), up to lower order terms. Incomparis<strong>on</strong>, the classical method uses the recurrencen−1 ∑ d∑p k,j (i − k + 1)(i − k + 2) · · · (i − k + j)s n+j−k−1 = 0j=0 k=0<str<strong>on</strong>g>and</str<strong>on</strong>g> amounts to compute the d(n−1) polynomials (x−k+1)(x−k+2) · · · (x−k + j), which can be d<strong>on</strong>e in complexity <strong>of</strong> O(dn M(n)). If d <str<strong>on</strong>g>and</str<strong>on</strong>g> n are <strong>of</strong> thesame order, our method saves a factor <strong>of</strong> about n.5 The geometric progressi<strong>on</strong> caseSimplificati<strong>on</strong>s in Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> formulas also arisewhen the sample <strong>points</strong> form a geometric progressi<strong>on</strong>; this was already pointedout in ? <str<strong>on</strong>g>and</str<strong>on</strong>g> references therein, but that article makes no menti<strong>on</strong> <strong>of</strong> asymptoticallyfast algorithms.21


In this secti<strong>on</strong> we show that the complexities <strong>of</strong> Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g><strong>on</strong> a geometric progressi<strong>on</strong> <strong>of</strong> size n drop to M(n) + O(n). Bytranspositi<strong>on</strong>, we deduce that the c<strong>on</strong>versi<strong>on</strong> between m<strong>on</strong>omial <str<strong>on</strong>g>and</str<strong>on</strong>g> Newt<strong>on</strong>bases have the same asymptotic cost. Last, as in the previous secti<strong>on</strong>, weobtain as corollaries fast algorithms for <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> <strong>on</strong> them<strong>on</strong>omial basis: the complexities <strong>of</strong> both tasks is shown to be in O(M(n)), i.e.better by a logarithmic factor than in the case <strong>of</strong> arbitrary samples <strong>points</strong>.Thus, geometric progressi<strong>on</strong>s should be c<strong>on</strong>sidered as interesting choices foralgorithms relying <strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> techniques. We illustratethis in the case <strong>of</strong> polynomial matrix multiplicati<strong>on</strong> algorithms.In all what follows, we actually assume for simplicity that the geometric progressi<strong>on</strong>we c<strong>on</strong>sider has the form x i = q i , i = 0, . . . , n−1. Treating the generalcase x i = x 0 q i , with arbitrary x 0 , does not alter the asymptotic estimates, <str<strong>on</strong>g>and</str<strong>on</strong>g><strong>on</strong>ly burdens the notati<strong>on</strong>. Finally, we menti<strong>on</strong> that many formulas presentedbelow can be thought as q-analogues <strong>of</strong> those presented in the previous secti<strong>on</strong>.Newt<strong>on</strong> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g>. Our first questi<strong>on</strong> is that <strong>of</strong> Newt<strong>on</strong><str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g>: the following propositi<strong>on</strong> proves the estimates<strong>of</strong> the last entry in the third column <strong>of</strong> Table 1.Propositi<strong>on</strong> 3 Let k be a field <str<strong>on</strong>g>and</str<strong>on</strong>g> let q ∈ k such that the elements x i = q i aredifferent from 1, for i = 0, . . . n−1. Then Newt<strong>on</strong> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g><strong>on</strong> the geometric sequence 1, q, . . . , q n−1 can be d<strong>on</strong>e using M(n) + O(n) basefield operati<strong>on</strong>s.Pro<strong>of</strong>. Let F be a polynomial <strong>of</strong> degree less than n, let v = v 0 , . . . , v n−1 be thevalues F (x i ) <str<strong>on</strong>g>and</str<strong>on</strong>g> f = f 0 , . . . , f n−1 the coefficients <strong>of</strong> F <strong>on</strong> the Newt<strong>on</strong> basisassociated to the <strong>points</strong> x. As in the previous secti<strong>on</strong>, we evaluate Formula (1)<strong>on</strong> the <strong>points</strong> x, yieldingv 0 = f 0v 1 = f 0 + (q − 1)f 1v 2 = f 0 + (q 2 − 1)f 1 + (q 2 − 1)(q 2 − q)f 2v 3 = f 0 + (q 3 − 1)f 1 + (q 3 − 1)(q 3 − q)f 2 + (q 3 − 1)(q 3 − q)(q 3 − q 2 )f 3 . . .Let us introduce the triangular numbers t i = 1 + 2 + · · · + (i − 1) = i(i − 1)/2,for i ≥ 0 <str<strong>on</strong>g>and</str<strong>on</strong>g> the modified sequence g i = q t if i , for i = 0, . . . , n − 1. Notethat all coefficients q t ican be computed in O(n) base field operati<strong>on</strong>s, sinceq t i+1= q i q t i. Thus, g = g 0 , . . . , g n−1 <str<strong>on</strong>g>and</str<strong>on</strong>g> f = f 0 , . . . , f n−1 can be computedfrom <strong>on</strong>e another for O(n) base field operati<strong>on</strong>s. With this data, the relati<strong>on</strong>s22


above becomev 0 = g 0v 1 = g 0 + (q − 1)g 1v 2 = g 0 + (q 2 − 1)g 1 + (q 2 − 1)(q − 1)g 2v 3 = g 0 + (q 3 − 1)g 1 + (q 3 − 1)(q 2 − 1)g 2 + (q 3 − 1)(q 2 − 1)(q − 1)g 3 . . .Next, we introduce the numbers w i defined byw 0 = v 0 , w i =v i, i = 1, . . . , n − 1. (3)(q − 1) · · · (q i − 1)As above, w <str<strong>on</strong>g>and</str<strong>on</strong>g> v can be computed from <strong>on</strong>e another for O(n) base fieldoperati<strong>on</strong>s. Using the modified values w i , the relati<strong>on</strong>s above becomew i = g i +i−1 ∑j=01(q − 1) · · · (q i−j − 1) g j.We c<strong>on</strong>clude as in the arithmetic case. We introduce the generating seriesW =n−1 ∑i=0w i x i , G =n−1 ∑i=0g i x i , T = 1 +n−1 ∑i=11(q − 1) · · · (q i − 1) xi , (4)so that the relati<strong>on</strong>s above become W = GT modulo x n . All coefficients <strong>of</strong>the power series T can be obtained in O(n) base field relati<strong>on</strong>s. By a classicalidentity (see for instance ? <str<strong>on</strong>g>and</str<strong>on</strong>g> the references therein) the inverse <strong>of</strong> T modulox n equals1 +n−1 ∑i=1q i(i−1)2 (−1) i(q − 1) · · · (q i − 1) xi ,thus its coefficients can also be obtained in O(n) operati<strong>on</strong>s. The c<strong>on</strong>clusi<strong>on</strong>follows.□For the sake <strong>of</strong> completeness, we summarize below the algorithm for Newt<strong>on</strong><str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <strong>on</strong> the geometric sequence 1, q, . . . , q n−1 . For a polynomial P , wedenote by Coeff(P, i) the coefficient <strong>of</strong> x i in P . For simplicity, we take asinput all powers <strong>of</strong> q; <strong>of</strong> course, given q <strong>on</strong>ly, they can be computed for n − 2additi<strong>on</strong>al multiplicati<strong>on</strong>s.Newt<strong>on</strong>EvalGeom(1, q, . . . , q n−1 , f 0 , . . . , f n−1 )q 0 ← 1; u 0 ← 1; g 0 ← f 0 ;for i ← 1 to n − 1 doq i ← q i−1 · q i−1 ;u i ← u i−1 · (q i − 1);g i ← q i f i ;W ← ( ∑ n−1i=0 g i x i ) · ( ∑ n−1i=0 u −1i x i );return u 0 Coeff(W, 0), . . . , u n−1 Coeff(W, n − 1);23


The algorithm for Newt<strong>on</strong> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> follow in an analogous manner fromthe pro<strong>of</strong> <strong>of</strong> the propositi<strong>on</strong> above. We give it for completeness.Newt<strong>on</strong>InterpGeom(1, q, . . . , q n−1 , v 0 , . . . , v n−1 )q 0 ← 1; u 0 ← 1; w 0 ← v 0 ;for i ← 1 to n − 1 doq i ← q i−1 · q i−1 ;u i ← u i−1 · (q i − 1);w i ← v i /u i ;G ← ( ∑ n−1i=0 w i x i ) · ( ∑ n−1i=0 (−x) i q i /u i );return Coeff(G, 0)/q 0 , . . . , Coeff(G, n − 1)/q n−1 ;C<strong>on</strong>versi<strong>on</strong>s between m<strong>on</strong>omial <str<strong>on</strong>g>and</str<strong>on</strong>g> Newt<strong>on</strong> bases. Our next step isto study the complexity <strong>of</strong> c<strong>on</strong>versi<strong>on</strong> between m<strong>on</strong>omial <str<strong>on</strong>g>and</str<strong>on</strong>g> Newt<strong>on</strong> bases.We prove the following result, which completes the first two entries in the lastcolumn <strong>of</strong> Table 1.Propositi<strong>on</strong> 4 Let k be a field <str<strong>on</strong>g>and</str<strong>on</strong>g> let q ∈ k such that the elements x i = q iare different from 1, for i = 0, . . . n − 1. Then the c<strong>on</strong>versi<strong>on</strong> between theNewt<strong>on</strong> basis associated to 1, q, . . . , q n−1 <str<strong>on</strong>g>and</str<strong>on</strong>g> the m<strong>on</strong>omial basis can be d<strong>on</strong>eusing M(n) + O(n) base field operati<strong>on</strong>s.The pro<strong>of</strong> comes from c<strong>on</strong>sidering the transposed <strong>of</strong> the Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g><str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g>. Indeed, the following lemma relates these questi<strong>on</strong>s to those<strong>of</strong> c<strong>on</strong>versi<strong>on</strong>s between m<strong>on</strong>omial <str<strong>on</strong>g>and</str<strong>on</strong>g> Newt<strong>on</strong> bases.Lemma 3 Let k be a field, q ∈ k ∗ <str<strong>on</strong>g>and</str<strong>on</strong>g> r = 1/q. Suppose that 1, q, . . . , q n−1are pairwise distinct <str<strong>on</strong>g>and</str<strong>on</strong>g> define the following matrices:• Let A be the matrix <strong>of</strong> base change from the Newt<strong>on</strong> basis associated to1, q, . . . , q n−1 to the m<strong>on</strong>omial basis.• Let B be the matrix <strong>of</strong> Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> at 1, r, . . . , r n−1 .• Let D 1 <str<strong>on</strong>g>and</str<strong>on</strong>g> D 2 be the n × n diag<strong>on</strong>al matrices[q i(i−1)/2 nD 1 = Diag ∏ i−1k=1 (qk − 1)]i=1<str<strong>on</strong>g>and</str<strong>on</strong>g>Then the matrix equality A = D 1 B t D 2 holds.q[D 2 = Diag(−1) j−1 q (j−1)(j−2)2] n.j=1Pro<strong>of</strong>. Given two integers n <str<strong>on</strong>g>and</str<strong>on</strong>g> k, the q-binomial coefficient (???) is definedas [ ] {n1−q n= · 1−qn−1· · · 1−qn−k+1, for n ≥ k ≥ 1,1−q 1−q 2 1−q kk 0, for n < k or k = 0.24


The following generalizati<strong>on</strong> <strong>of</strong> the usual binomial formula holds:n∏k=1( )1 + q k−1 x=[ ]n∑ nkk=0qq k(k−1)2 x k . (5)From Equati<strong>on</strong> (5), it is then easy to deduce that the entries <strong>of</strong> the matrix Aare[ ]j − 1A i,j = (−1) j−i q (j−i)(j−i−1)/2 .i − 1qOn the other h<str<strong>on</strong>g>and</str<strong>on</strong>g>, the (i, j) entry <strong>of</strong> the matrix representing Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g>with respect to x 0 , . . . , x n−1 is zero if j < i <str<strong>on</strong>g>and</str<strong>on</strong>g> equals ∏ ( )j−1k=1 xi−1 − x k−1for all j ≥ i ≥ 1. Applying this to x i = 1/q i , we getB i,j = (−1) j−1 ·j−1 ∏k=1q i−k − 1q i−1 , for all j ≥ i ≥ 1.Having the explicit expressi<strong>on</strong>s <strong>of</strong> the entries <strong>of</strong> A <str<strong>on</strong>g>and</str<strong>on</strong>g> B allows to write theequalityB t i,jfrom which the lemma follows.q i(i−1) + (j−1)(j−2)2 2= (−1) j−1A i,j (q − 1) · · · (q i−1 − 1) ,Thus, up to multiplicati<strong>on</strong>s by diag<strong>on</strong>al matrices, the c<strong>on</strong>versi<strong>on</strong> maps betweenm<strong>on</strong>omial <str<strong>on</strong>g>and</str<strong>on</strong>g> Newt<strong>on</strong> bases are the transposes <strong>of</strong> those <strong>of</strong> Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g><str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g>, at the cost <strong>of</strong> replacing q by 1/q. The pro<strong>of</strong> <strong>of</strong> Propositi<strong>on</strong> 4is now immediate, since the two diag<strong>on</strong>al matrices involved can be computedin time O(n).For the sake <strong>of</strong> completeness, we give below the algorithm for the c<strong>on</strong>versi<strong>on</strong>from Newt<strong>on</strong> to m<strong>on</strong>omial basis <strong>on</strong> the geometric sequence 1, q, . . . , q n−1 . Weobtain it using Lemma 3 above <str<strong>on</strong>g>and</str<strong>on</strong>g> by transposing the algorithm for Newt<strong>on</strong><str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <strong>on</strong> a geometric sequence, as described in the pro<strong>of</strong> <strong>of</strong> Propositi<strong>on</strong> 3.□Newt<strong>on</strong>ToM<strong>on</strong>omialGeom(1, . . . , q n−1 , f 0 , . . . , f n−1 )q 0 ← 1; v 0 ← f 0 ; u 0 ← 1; w 0 ← f 0 ; z 0 ← 1;for i ← 1 to n − 1 doq i ← q i−1 · q i−1 ;v i ← (−1) i f i q i ;u i ← u i−1 q i /(1 − q i );w i ← v i /u i ;z i ← (−1) i u i /q i ;G ← mul t (n − 1, ∑ n−1i=0 u i x i , ∑ n−1i=0 w i x i );return z 0 Coeff(G, 0), . . . , z n−1 Coeff(G, n − 1);25


Similarly, the algorithm for the c<strong>on</strong>versi<strong>on</strong> from m<strong>on</strong>omial to Newt<strong>on</strong> basis <strong>on</strong>a geometric sequence can be deduced using again Lemma 3 <str<strong>on</strong>g>and</str<strong>on</strong>g> the transpositi<strong>on</strong><strong>of</strong> the algorithm for Newt<strong>on</strong> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> <strong>on</strong> a geometric sequence givenin the pro<strong>of</strong> <strong>of</strong> Propositi<strong>on</strong> 3. We state it below.M<strong>on</strong>omialToNewt<strong>on</strong>Geom(1, . . . , q n−1 , v 0 , . . . , v n−1 )q 0 ← 1; u 0 ← 1; w 0 ← v 0 ; z 0 ← 1; f 0 ← v 0 ;for i ← 1 to n − 1 doq i ← q i−1 · q i−1 ;u i ← u i−1 q i /(1 − q i );w i ← v i /u i ;z i ← (−1) i u i /q i ;f i ← (−1) i w i q i ;G ← mul t (n − 1, ∑ n−1i=0 z i x i , ∑ n−1i=0 f i x i );return z 0 Coeff(G, 0), . . . , z n−1 Coeff(G, n − 1);Evaluati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> <strong>on</strong> the m<strong>on</strong>omial basis. We now treatthe questi<strong>on</strong> <strong>of</strong> fast m<strong>on</strong>omial <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> <strong>on</strong> a geometricprogressi<strong>on</strong>. As before, we take x i = q i , i = 0, . . . , n − 1, where q ∈ k is suchthat the elements 1, q, . . . , q n−1 be pairwise distinct.It is known that evaluating a polynomial <strong>of</strong> degree less than n <strong>on</strong> the geometricprogressi<strong>on</strong> 1, q, . . . , q n−1 can be d<strong>on</strong>e using O(M(n)) operati<strong>on</strong>s. This operati<strong>on</strong>,generalizing the discrete Fourier transform, is called the chirp transform<str<strong>on</strong>g>and</str<strong>on</strong>g> has been independently studied by ? <str<strong>on</strong>g>and</str<strong>on</strong>g> by ?, see also ?. In c<strong>on</strong>trast,to the best <strong>of</strong> our knowledge, no algorithm for the inverse operati<strong>on</strong> – <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g>at a geometric progressi<strong>on</strong> – has been given yet. Our aim is now toshow that the inverse chirp transform can be performed in a similar asymptoticcomplexity. These results are gathered in the following propositi<strong>on</strong>, whichcompletes the entries <strong>of</strong> Table 1.Propositi<strong>on</strong> 5 Let k be a field, let n ≥ 0 <str<strong>on</strong>g>and</str<strong>on</strong>g> let q ∈ k such that the elementsx i = q i , for i = 0, . . . n − 1, are pairwise distinct. If F ∈ k[x] has degree lessthan n then:• Given the coefficients <strong>of</strong> F <strong>on</strong> the m<strong>on</strong>omial basis, then all the values F (x i ),for 0 ≤ i ≤ n − 1, can be computed in 2M(n) + O(n) base field operati<strong>on</strong>s.• Given the values F (x 0 ), . . . , F (x n−1 ), all coefficients <strong>of</strong> F <strong>on</strong> the m<strong>on</strong>omialbasis can be computed in 2M(n) + O(n) base field operati<strong>on</strong>s.Pro<strong>of</strong>. We briefly recall how the direct chirp transform works. Write F =26


f 0 + f 1 x + · · · + f n−1 x n−1 . Then the algorithm is based <strong>on</strong> the equalities:n−1F (q i ∑n∑) = f j q ij = q −i2 /2 · f j q −j2 /2 q (i+j)2/2 .j=0j=0Suppose first that q is a square in k. Computing the values b i = q i2 /2 , for0 ≤ i ≤ 2(n − 1) <str<strong>on</strong>g>and</str<strong>on</strong>g> c j = f j q −j2 /2 , for 0 ≤ j ≤ n − 1, takes linear time in n,using the recurrence q (i+1)2 = q i2 q 2i q. Then, the preceding formula shows thatthe values F (q i ) are, up to c<strong>on</strong>stant factors, given by the middle part <strong>of</strong> thepolynomial product(b 0 + b 1 x + · · · + b 2(n−1) x 2(n−1) )(c n−1 + · · · + c 0 x n−1 ).Using st<str<strong>on</strong>g>and</str<strong>on</strong>g>ard polynomial multiplicati<strong>on</strong>, this algorithm requires 2M(n) operati<strong>on</strong>s,but the complexity actually drops to M(n) + O(n), using the middleproduct <strong>of</strong> ?.In the general case when q is not a square, several possibilities are available.The first idea is to introduce a square root for q by computing inK = k[x]/(x 2 − q). Another choice is to use the algorithms described previously:performing first a change <strong>of</strong> base to the Newt<strong>on</strong> representati<strong>on</strong>, <str<strong>on</strong>g>and</str<strong>on</strong>g>then a Newt<strong>on</strong> <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g>. This way, we obtain the estimate <strong>of</strong> 2M(n) + O(n)operati<strong>on</strong>s for the chirp transform.Let us now focus <strong>on</strong> the computati<strong>on</strong> <strong>of</strong> the inverse chirp transform. As above,we use the Newt<strong>on</strong> basis for intermediate computati<strong>on</strong>s: first perform a Newt<strong>on</strong><str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g>, then perform a c<strong>on</strong>versi<strong>on</strong> from the Newt<strong>on</strong> basis to them<strong>on</strong>omial basis. Both steps have complexities M(n) + O(n), which gives theestimate <strong>of</strong> 2M(n) + O(n) operati<strong>on</strong>s for the inverse chirp transform. □Applicati<strong>on</strong> to polynomial matrix multiplicati<strong>on</strong>. We finally applythe results above to improve the complexity <strong>of</strong> polynomial matrix multiplicati<strong>on</strong>.This problem is important, since polynomial matrix multiplicati<strong>on</strong> is aprimitive <strong>of</strong> linear algebra algorithms dealing with polynomial matrices (determinant,inversi<strong>on</strong>, system solving, column reducti<strong>on</strong>, integrality certificati<strong>on</strong>,normal forms), see for instance (???). It also occurs during computati<strong>on</strong>s <strong>of</strong>matrix Padé-type approximants (?????), recurrences with polynomial coefficients(??) <str<strong>on</strong>g>and</str<strong>on</strong>g> linear differential operators.Let MM(n, d) represent the number <strong>of</strong> base field operati<strong>on</strong>s required to multiplytwo n × n matrices with polynomial entries <strong>of</strong> degree less than d. Forsimplicity, the cost MM(n, 1) <strong>of</strong> scalar n × n matrix multiplicati<strong>on</strong> will be denotedMM(n). This functi<strong>on</strong> is frequently written as MM(n) = O(n ω ), where27


2 ≤ ω < 3 is the so-called exp<strong>on</strong>ent <strong>of</strong> the matrix multiplicati<strong>on</strong>, see for instance??.? described an algorithm for multiplying degree d polynomials with coefficientsfrom an arbitrary (possibly n<strong>on</strong> commutative) algebra using O(M(d))algebra operati<strong>on</strong>s. Viewing polynomial matrices as polynomials with scalarmatrix coefficients, the result in ? implies that MM(n, d) = O (M(d) MM(n)) .Over base fields <strong>of</strong> cardinality larger than 2d − 2, the use <strong>of</strong> an <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> /<str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> scheme allows to uncouple polynomial <str<strong>on</strong>g>and</str<strong>on</strong>g> matrix products <str<strong>on</strong>g>and</str<strong>on</strong>g>yields the better boundMM(n, d) = O ( MM(n) d + n 2 M(d) log(d) ) . (6)An important remark (??) (see also ?) is that if the base field supports FFT,then choosing the roots <strong>of</strong> unity as sample <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <strong>points</strong> improves theprevious estimate toMM(n, d) = O ( MM(n) d + n 2 d log(d) ) . (7)However, the algorithm in (??) is dependent <strong>on</strong> the specific use <strong>of</strong> FFT, whichmight not be pertinent for polynomials <strong>of</strong> moderate degrees.In c<strong>on</strong>trast, using <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> at a geometric progressi<strong>on</strong>enables us to obtain the following result.Theorem 4 Let n, d ≥ 1 <str<strong>on</strong>g>and</str<strong>on</strong>g> let k be a field <strong>of</strong> characteristic 0, or a finitefield <strong>of</strong> cardinality at least 2d − 1. Then we have the estimateMM(n, d) = (2d − 1) MM(n) + 6 n 2 M(2d) + O(n 2 d).Pro<strong>of</strong>. In both cases, we use <str<strong>on</strong>g>evaluati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> <strong>on</strong> a geometric progressi<strong>on</strong>1, q, . . . , q 2d−2 <strong>of</strong> size 2d − 1. In characteristic 0, we can take q = 2. Ifk is finite, we take for q a generator <strong>of</strong> the multiplicative group k ∗ (for practicalpurposes, we might as well choose q at r<str<strong>on</strong>g>and</str<strong>on</strong>g>om, if k has a large enoughcardinality).□Theorem 4 may be seen as an improvement by a log factor <strong>of</strong> the bound (6),generalizing the bound (7) to an arbitrary multiplicati<strong>on</strong> time M functi<strong>on</strong> thatsatisfies our hypotheses. Still, for polynomial matrices <strong>of</strong> high degrees, themethod in (??) is better by a c<strong>on</strong>stant factor than ours, since the polynomialmultiplicati<strong>on</strong> uses FFT, <str<strong>on</strong>g>and</str<strong>on</strong>g> thus itself requires evaluating <str<strong>on</strong>g>and</str<strong>on</strong>g> interpolatingat the roots <strong>of</strong> unity.To c<strong>on</strong>clude this paper, Figures 1 <str<strong>on</strong>g>and</str<strong>on</strong>g> 2 display the speed-up obtained usingour polynomial matrix multiplicati<strong>on</strong> algorithm, versus a naive product (thus,a larger number means a more significant improvement). The matrix sizes vary28


from 1 to 120, the polynomial degrees vary from 0 to 200, <str<strong>on</strong>g>and</str<strong>on</strong>g> the base fieldis Z/pZ, where p is a 32 bit prime. The time ratios are given in the table <strong>of</strong>Figure 1 <str<strong>on</strong>g>and</str<strong>on</strong>g> displayed graphically in Figure 2.The implementati<strong>on</strong> is made using Shoup’s NTL C++ library ?; we used anaive matrix multiplicati<strong>on</strong> <strong>of</strong> cubic complexity, <str<strong>on</strong>g>and</str<strong>on</strong>g> NTL’s built-in polynomialarithmetic. The timings are obtained <strong>on</strong> an Intel Pentium 4 CPU at2GHz.15 35 55 75 95 115 135 155 175 19520 0.6 0.8 1.4 1.4 1.6 1.6 2.2 2.1 1.7 1.730 1.1 1.2 2.0 2.0 2.4 2.3 3.3 3.2 2.5 2.540 1.2 1.6 2.6 2.7 3.2 3.0 4.3 4.1 3.3 3.250 1.4 2.0 3.2 3.3 3.9 3.6 5.3 5.1 4.1 4.060 1.7 2.3 3.8 3.9 4.6 4.4 6.3 6.1 4.8 4.770 1.9 2.6 4.3 4.5 5.3 5.0 7.2 6.9 5.6 5.480 2.1 2.9 4.8 4.9 6.0 5.6 8.1 7.7 6.2 5.990 2.3 3.3 5.5 5.7 6.6 6.2 9.0 8.6 6.9 6.7100 2.5 3.5 6.0 6.2 7.3 6.8 9.8 9.3 7.5 7.3110 2.6 3.9 6.3 6.6 7.8 7.3 10.6 10.1 8.1 7.9Fig. 1. Speed-up between classical <str<strong>on</strong>g>and</str<strong>on</strong>g> improved polynomial matrix multiplicati<strong>on</strong>.Rows are indexed by the matrix size (20—110); columns are indexed by the matrixdegree (15–195)."chirp.dat"time ratio12108642002040matrix size6080100120 010012014016018020080 matrix degree604020Fig. 2. Speed-up between classical <str<strong>on</strong>g>and</str<strong>on</strong>g> improved polynomial matrix multiplicati<strong>on</strong>.29


Acknowledgments. We wish to thank Pierrick Gaudry, Bruno Salvy <str<strong>on</strong>g>and</str<strong>on</strong>g>Gilles Villard for useful comments <strong>on</strong> a first versi<strong>on</strong> <strong>of</strong> this article. Our thanksalso go to the referees <strong>of</strong> this paper for their useful remarks.ReferencesAbramov, S. A., 1989. Rati<strong>on</strong>al soluti<strong>on</strong>s <strong>of</strong> linear differential <str<strong>on</strong>g>and</str<strong>on</strong>g> differenceequati<strong>on</strong>s with polynomial coefficients. Zh. Vychisl. Mat. i Mat. Fiz. 29 (11),1611–1620, 1757, english translati<strong>on</strong> in U.S.S.R. Comp. Maths. Math. Phys.,7–12.Aho, A. V., Steiglitz, K., Ullman, J. D., 1975. Evaluating polynomials at fixed<strong>sets</strong> <strong>of</strong> <strong>points</strong>. SIAM J. Comput. 4 (4), 533–539.Beckermann, B., Labahn, G., 1992. A uniform approach for Hermite Padé<str<strong>on</strong>g>and</str<strong>on</strong>g> simultaneous Padé approximants <str<strong>on</strong>g>and</str<strong>on</strong>g> their matrix-type generalizati<strong>on</strong>s.Numer. Algorithms 3 (1-4), 45–54.Beckermann, B., Labahn, G., 1994. A uniform approach for the fast computati<strong>on</strong><strong>of</strong> matrix-type Padé approximants. SIAM J. Matrix Analysis <str<strong>on</strong>g>and</str<strong>on</strong>g>Applic. 15 (3), 804–823.Bini, D., Pan, V. Y., 1994. <str<strong>on</strong>g>Polynomial</str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> matrix computati<strong>on</strong>s. Vol. 1.Birkhäuser Bost<strong>on</strong> Inc., Bost<strong>on</strong>, MA, fundamental algorithms.Bluestein, L. I., 1970. A linear filtering approach to the computati<strong>on</strong> <strong>of</strong> thediscrete Fourier transform. IEEE Trans. Electroacoustics AU-18, 451–455.Borodin, A., Moenck, R. T., 1974. Fast modular transforms. J. Comput. Syst.Sci. 8 (3), 366–386.Bostan, A., Gaudry, P., Schost, É., 2004. Linear recurrences with polynomialcoefficients <str<strong>on</strong>g>and</str<strong>on</strong>g> computati<strong>on</strong> <strong>of</strong> the Cartier-Manin operator <strong>on</strong> hyperellipticcurves. In: Internati<strong>on</strong>al C<strong>on</strong>ference <strong>on</strong> Finite Fields <str<strong>on</strong>g>and</str<strong>on</strong>g> Applicati<strong>on</strong>s(Toulouse, 2003). Vol. 2948 <strong>of</strong> Lecture Notes in Computer Science. Springer–Verlag, pp. 40–58.Bostan, A., Lecerf, G., Schost, É., 2003. Tellegen’s principle into practice. In:ISSAC’03. ACM Press, pp. 37–44.Bürgisser, P., Clausen, M., Shokrollahi, M. A., 1997. Algebraic complexitytheory. Vol. 315 <strong>of</strong> Grundlehren Math. Wiss. Springer–Verlag.Cantor, D. G., Kalt<strong>of</strong>en, E., 1991. On fast multiplicati<strong>on</strong> <strong>of</strong> polynomials overarbitrary algebras. Acta Inform. 28 (7), 693–701.Chudnovsky, D. V., Chudnovsky, G. V., 1988. Approximati<strong>on</strong>s <str<strong>on</strong>g>and</str<strong>on</strong>g> complexmultiplicati<strong>on</strong> according to Ramanujan. In: Ramanujan revisited (Urbana-Champaign, Ill., 1987). Academic Press, Bost<strong>on</strong>, MA, pp. 375–472.v<strong>on</strong> zur Gathen, J., Gerhard, J., 1999. Modern computer algebra. CambridgeUniversity Press.Gauss, C. F., 1863. Summatio quarundam serierum singularium. Opera, Vol. 2,Göttingen: Gess. d. Wiss., 9–45.Gerhard, J., 2000. Modular algorithms for polynomial basis c<strong>on</strong>versi<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g>30


greatest factorial factorizati<strong>on</strong>. In: RWCA’00. pp. 125–141.Giorgi, P., Jeannerod, C.-P., Villard, G., 2003. On the complexity <strong>of</strong> polynomialmatrix computati<strong>on</strong>s. In: ISSAC’03. ACM Press, pp. 135–142.Goldman, J., Rota, G.-C., 1970. On the foundati<strong>on</strong>s <strong>of</strong> combinatorial theory.IV. Finite vector spaces <str<strong>on</strong>g>and</str<strong>on</strong>g> Eulerian generating functi<strong>on</strong>s. Studies in Appl.Math. 49, 239–258.Hanrot, G., Quercia, M., Zimmermann, P., 2004. The Middle Product Algorithm,I. Appl. Algebra Engrg. Comm. Comput. 14 (6), 415–438.Heine, E., 1847. Untersuchungen über die Reihe 1 + (1−qα )(1−q β )(1−q)(1−q γ )· x +(1−q α )(1−q α+1 )(1−q β )(1−q β+1 )(1−q)(1−q 2 )(1−q γ )(1−q γ+1 )· x 2 + . . . . J. reine angew. Math. 34, 285–328.Horowitz, E., 1972. A fast method for <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> using prec<strong>on</strong>diti<strong>on</strong>ing. Inf.Proc. Letters 1 (4), 157–163.Kalt<strong>of</strong>en, E., 2000. Challenges <strong>of</strong> symbolic computati<strong>on</strong>: my favorite openproblems. With an additi<strong>on</strong>al open problem by Robert M. Corless <str<strong>on</strong>g>and</str<strong>on</strong>g> DavidJ. Jeffrey. J. Symb. Comp. 29 (6), 891–919.Karatsuba, A., Ofman, Y., 1963. Multiplicati<strong>on</strong> <strong>of</strong> multidigit numbers <strong>on</strong> automata.Soviet Math. Dokl. 7, 595–596.Knuth, D. E., 1998. The Art <strong>of</strong> Computer Programming, vol. 2, SeminumericalAlgorithms, 3rd Editi<strong>on</strong>. Addis<strong>on</strong>-Wesley, Reading MA.Moenck, R. T., Borodin, A., 1972. Fast modular transforms via divisi<strong>on</strong>. 13thAnnual IEEE Symposium <strong>on</strong> Switching <str<strong>on</strong>g>and</str<strong>on</strong>g> Automata Theory, 90–96.M<strong>on</strong>tgomery, P. L., 1992. An FFT extensi<strong>on</strong> <strong>of</strong> the elliptic curve method <strong>of</strong>factorizati<strong>on</strong>. Ph.D. thesis, University <strong>of</strong> California, Los Angeles CA.Paule, P., 1995. Greatest factorial factorizati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> symbolic summati<strong>on</strong>. J.Symb. Comp. 20 (3), 235–268.Petkovšek, M., 1992. Hypergeometric soluti<strong>on</strong>s <strong>of</strong> linear recurrences with polynomialcoefficients. J. Symb. Comp. 14 (2-3), 243–264.Rabiner, L. R., Schafer, R. W., Rader, C. M., 1969. The chirp z-transformalgorithm <str<strong>on</strong>g>and</str<strong>on</strong>g> its applicati<strong>on</strong>. Bell System Tech. J. 48, 1249–1292.Roman, S., 1984. The umbral calculus. Vol. 111 <strong>of</strong> Pure <str<strong>on</strong>g>and</str<strong>on</strong>g> Applied Mathematics.Academic Press Inc., New York.Rothe, H. A., 1793. Formulae de serierum reversi<strong>on</strong>e dem<strong>on</strong>stratio universalissignis localibus combinatorico-analyticorum vicariis exhibita. Leipzig.Schoenberg, I. J., 1981. On polynomial <str<strong>on</strong>g>interpolati<strong>on</strong></str<strong>on</strong>g> at the <strong>points</strong> <strong>of</strong> a geometricprogressi<strong>on</strong>. Proc. Roy. Soc. Edinburgh Sect. A 90 (3-4), 195–207.Schönhage, A., 1977. Schnelle Multiplikati<strong>on</strong> v<strong>on</strong> Polynomen über Körpernder Charakteristik 2. Acta Inform. 7, 395–398.Schönhage, A., Strassen, V., 1971. Schnelle Multiplikati<strong>on</strong> großer Zahlen.Computing 7, 281–292.Shoup, V., 1996–2004. NTL: A library for doing number theory.http://www.shoup.net.Stirling, J., 1730. Methodus Differentialis: sive Tractatus de Summati<strong>on</strong>e etInterpolati<strong>on</strong>e Serierum Infinitarum. Gul. Bowyer, L<strong>on</strong>d<strong>on</strong>, english translati<strong>on</strong>by Holliday, J. The Differential Method: A Treatise <strong>of</strong> the Summati<strong>on</strong>31


<str<strong>on</strong>g>and</str<strong>on</strong>g> Interpolati<strong>on</strong> <strong>of</strong> Infinite Series. 1749.Storjohann, A., 2002. High-order lifting. In: ISSAC’02. ACM Press, pp. 246–254.Strassen, V., 1973. Die Berechnungskomplexität v<strong>on</strong> elementarsymmetrischenFunkti<strong>on</strong>en und v<strong>on</strong> Interpolati<strong>on</strong>skoeffizienten. Numer. Math. 20, 238–251.Tellegen, B., 1952. A general network theorem, with applicati<strong>on</strong>s. Tech. Rep. 7,Philips Research.Thomé, É., 2001. Fast computati<strong>on</strong> <strong>of</strong> linear generators for matrix sequences<str<strong>on</strong>g>and</str<strong>on</strong>g> applicati<strong>on</strong> to the block Wiedemann algorithm. In: ISSAC’01. ACMPress, pp. 323–331.Thomé, É., 2002. Subquadratic computati<strong>on</strong> <strong>of</strong> vector generating polynomials<str<strong>on</strong>g>and</str<strong>on</strong>g> improvement <strong>of</strong> the block Wiedemann algorithm. J. Symb. Comp.33 (5), 757–775.Villard, G., 1996. Computing Popov <str<strong>on</strong>g>and</str<strong>on</strong>g> Hermite forms <strong>of</strong> polynomial matrices.In: ISSAC’96. ACM Press, pp. 251–258.32

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

Saved successfully!

Ooh no, something went wrong!