> <\body> <\hide-preamble> > > >> > > \; <\doc-data|||<\author-note> This work has been partly supported by the French project, and by the grant of the Région Ile-de-France. |<\author-address> Laboratoire d'informatique UMR 7161 CNRS École polytechnique 91128 Palaiseau Cedex France ||>|||<\author-note> This work has also been supported by NSERC and the Canada Research Chairs program. |<\author-address> Computer Science Department The University of Western Ontario London, Ontario Canada ||>> \; <|doc-data> \; <|doc-data> \; |>> <\abstract> In this paper, we propose efficient new algorithms for multi-dimensional multi-point evaluation and interpolation on certain subsets of so called tensor product grids. These point-sets naturally occur in the design of efficient multiplication algorithms for finite-dimensional >-algebras> of the form =\,\,x|]>/I>, where is generated by monomials of the form >*\*x>>; one particularly important example is the algebra of truncated power series ,\,x|]>/,\,x|)>>>. Similarly to what is known for multi-point evaluation and interpolation in the univariate case, our algorithms have quasi-linear time complexity. As aknown consequence, we obtain fast multiplication algorithms for algebras > of the above form. The purpose of this paper is to give fast algorithms for some polynomial evaluation and interpolation problems in several variables; as an application, we improve algorithms for multiplying dense multivariate polynomials and multivariate power series. The complexity of our algorithms will be measured by counting base field operations: we do not consider numerical issues (they may anyway be irrelevant, if e.g. our base field is afinite field), and do not discuss the choice of data structures or index manipulation issues.\ From the complexity point of view, evaluation and interpolation are rather well understood for polynomials in one variable: algorithms of quasi-linear complexity are known to evaluate a polynomial of degree less than at points, and conversely to interpolate it. The best known algorithms run in time d*log log d|)>>, and the main remaining question is to close the gap between this and an optimal >, if at all possible. In several variables, the questions are substantially harder, due to the variety of monomial bases and evaluation sets one may consider; no quasi-linear time algorithm is known in general. In this paper, following the terminology of , we consider evaluation points that are subgrids of . We prove that for some suitable monomial bases, evaluation and interpolation can both be done in time *log *log log |)>>, where is the number of variables and > is the size of the evaluation set (and of the monomial basis we consider). Remark that this result directly generalizes the univariate case. In many cases, is logarithmic in >; then, our result is optimal, up to logarithmic factors. Moreover, for specific types of evaluation points, such as roots of unity or points in ageometric progression, even faster algorithms can be used in the univariate case, of time complexity >. These algorithms will also be generalized to the multivariate case and result in evaluation and interpolation algorithms of time complexity *n*log d*log log d|)>>, where is the maximal partial degree. In particular, given two dense multivariate polynomials in variables of total degree d/2> can be multiplied in time *n*log d*log log d|)>>. To the best of our knowledge, this is the best currently available complexity bound for this problem. We also expect the new algorithms to be efficient in practice, although we have not implemented them yet. \; <\big-figure> \; <\with|par-mode|center> |gr-frame|>|gr-grid||0.75>|gr-grid-old||0.75>|gr-edit-grid-aspect|||>|gr-edit-grid||0.75>|gr-edit-grid-old||0.75>|gr-geometry||gr-as-visual-grid|off|gr-grid-aspect-props|||>|gr-grid-aspect||>|gr-color|green|gr-fill-color|green|gr-line-width|2ln|gr-point-style|square|arrow-length|10ln|arrow-height|6ln|gr-arrow-end|\|||||||||||||||>>|||>>|>|>|>|>|>>> An initial segment of cardinality 12 in >> In what follows, \> is a finite initial segment for the partial ordering on >: this means that if \> and \I>, then \I>. For instance, one may think of as the set of standard monomials modulo a -dimensional ideal, for a given monomial ordering. Figure shows such a set (black dots), as well as the minimal elements of \I> (green squares). As a very particular example, for positive integers ,\,d>, let ,\,d>> denote the set ,d-1|}>\\\,d-1|}>>; this is an -dimensional grid. The set will be used as an index set for both the evaluation points and the monomial basis. Let > be our base field and let ,\,d> be such that I,\,d>>. For ,n|}>>, assume that we are given pairwise distinct elements =,\,v-1>|)>\\>>; we will denote by > the collection ,\,v|)>>. To =,\,i|)>\I> we associate the point ,>=>,\,v>|)>\\> and we let |)>=,>:\I|}>>: this will be our set of evaluation points. Remark that |)>> is contained in the ``tensor product'' grid <\equation*> ,\,v-1>|)>\\\,\,v-1>|)>. For instance, if =i> for all >, then ,>=> and |)>=I>.\ Let further |]>=[x,\,x>]> be the polynomial ring in variables over >; for =,\,i|)>>\\>, we write >=x>*\*x>>. Then, |]>> denotes the >-vector space of polynomials \I>p>*>\\|]>> with support in . On the example of Figure , |]>> admits the monomial basis <\equation*> 1,x,x,x,x,x*x,x*x,x,x*x,x,x*x,x. Given a polynomial \|]>>, written on the monomial basis, our problem of multidimensional multi-point evaluation is the computation of the vector ,>|)>:\I|}>\\>.\ Both the domain |]>> and the codomain > of the evaluation map are >-vector spaces of dimension >, so it makes sense to ask whether this map is invertible. Indeed, let |)>>\|]>> be the defining ideal of |)>>. A result going back to Macaulay (see for aproof) shows that the monomials >:\I|}>> form a monomial basis of |]>/\|)>>. As a consequence, the former evaluation map is invertible; the inverse problem is an instance of multivariate interpolation. The purpose of this paper is to give complexity results for the evaluation and interpolation problems described above. We found no previous references dedicated to the evaluation problem (a naive solution obviously takes quadratic time). As to our form of interpolation, an early reference is , with a focus on the bivariate case; the question has been the subject of several subsequent works, and one finds a comprehensive treatment in . However, the algorithms mentioned previously do not have quasi-linear complexity. To obtain a quasi-linear result, we rely on the fast univariate algorithms of . In the special case where is the grid ,\,d>>, Pan solves the multivariate problem by applying a ``tensored'' form of the univariate algorithms, evaluating or interpolating one variable after the other. The key contribution of our paper is the use of a multivariate Newton basis, combined with fast change of basis algorithms between the Newton basis and the monomial basis; this will allow us to follow an approach similar to Pan's in our more general situation. The Newton basis was already used in many previous works on our interpolation problem , accompanied by divided differences computations: we avoid divided differences, as they lead to quadratic time algorithms. The results in this paper have a direct application to multivariate power series multiplication. Let be as above, and let > be the monomial ideal generated by >:\I|}>>; equivalently, > is generated by all minimal elements of \I>. Then, one is interested the complexity of multiplication modulo >, that is, in |]>/\>. Suitable choices of lead to truncation (take ,\,i|)>:i+\+i\d|}>>, so =|x,\,x|\>>), which is used in many forms of Newton-Hensel lifting, or truncation (take ,\,i|)>:i\d,\,i\d|}>>, so =|x>,\,x>|\>>). There is no known algorithm with quasi-linear cost for this question in general. Inspired by the sparse multiplication algorithm of , Lecerf and Schost gave such an algorithm for total degree truncation . It was extended to weighted total degree in and further improved from the bit-complexity point of view in. Further speed-ups are possible in small dimensions, when using the Truncated Fourier Transformor TFT . For more general truncation patterns, Schost introduced an algorithm based on deformation techniques that uses evaluation and interpolation of the form described in this paper. At the time of writing , no efficient algorithm was known for evaluation and interpolation; the present paper fills this gap and completes the results of . In all that follows, we let >:\\\> denote a multiplication time function, in the sense that univariate polynomials of degree less than can be multiplied in > operations in >. As in , we impose the condition that /d> is an increasing function (and freely use all consequences of this assumption), and we note that can be taken in > using the algorithm of . We will use big-Oh notation for expressions that depend on an unbounded number of variables (e.g., for Lemma below). In such cases, the notation ,\,d|)>=,\,d|)>|)>>> means that there exists a universal constant > such that for all and all ,\,d>, the inequality ,\,d|)>\\*g,\,d|)>> holds. This section describes some mostly classical algorithms for univariate polynomials over >. We denote by > the set of univariate polynomials of degree less than . Given pairwise distinct points ,\,v> in >, we write =|)>*\*|)>> for i\d>. The polynomials ,\,N> are called the associated to ; they form a >-basis of >. For instance, for =i>, we have =x**\*|)>>. Because we will have to switch frequently between the monomial and the Newton bases, it will be convenient to use the notation >>, for \>, with <\eqnarray*> >||>>|>|||)>*\*|)>.>>>> We write >|)>d>> to indicate that a polynomial > is written on the basis >|)>d>>; remember that when no value > is mentioned in subscript, we are working in the Newton basis. \ The following classical lemma gives complexity estimates for conversion between these bases. <\lemma> For \>, given >|)>d>>, one can compute >|)>d>> in time *log d|)>>. Evaluation and interpolation in the monomial basis can be done in time *log d|)>>, by the algorithms of ; combining this to the previous lemma, we obtain a similar estimate for evaluation and interpolation with respect to the Newton basis. <\lemma> For \>, given >|)>d>>, one can compute |)>i\d>>, and conversely recover >|)>d>> from its values |)>i\d>>, in time *log d|)>>. If the points ,\,v> are in geometric progression, we may remove a factor in all estimates. Indeed, under these assumptions, the conversions of Lemma and the evaluation or interpolation of Lemma take time |)>>. The following subsection studies in detail another particular case, TFT (Truncated Fourier Transform) points. In this case we may also remove the factor in all estimates, but the constant factor is even better than for points in geometric progression. In this subsection, we are going to assume that > contains suitable roots of unity, and prove refined complexity bounds for such points. Let be as above, let log d\> be the smallest integer such that 2> and let us suppose that > contains a primitive >-th root of unity >. The TFT points are =\>>, for ,d-1>, where > is the binary -bits mirror of . In other words, they form an initial segment of length for the sequence of >-th roots of unity written in the bit-reverse order; when for instance and , these points are >. In this subsection, these points are fixed, so we drop the subscript > in our notation. It is known that in the monomial basis, evaluation and interpolation at the TFT points can be done in time >. Precisely, both operations can be done using > shifted additions and subtractions and |)>/2\> multiplications by powers of>. Here we recall that a shifted addition (resp. subtraction) is a classical addition (resp. subtraction) where any of the inputs may be premultiplied by or (e.g., 2*b>). In the most interesting case 2/2>, the TFT roughly saves a factor of 2 over the classical FFT; this makes it a very useful tool for e.g. polynomial multiplication. We will show here that similar results hold for the conversion between the monomial and Newton bases. First, we give the basis of the algorithm by assuming that >, so that =2-1>. Such a polynomial can be written in the monomial, resp. Newton basis, as <\equation*> P=-1>p*x=-1>p*>|)>. For ,q>, let us introduce the polynomials >,\,P>-1>>, all of degree less than >, such that <\equation> P=-1>P>*>-\>|)>. Thus, >=p> for and ,2-1>, whereas >=P> for . <\lemma> For ,q-1> and ,2-1>, we have <\equation*> P>=P>+P>*>-\>|)>=>-\>*P>|)>+x>*P>. <\proof> This follows by grouping the terms of indices and in , and by noticing that for all 2>, the following equality holds: <\equation*> >-\>|)>=>-\>|)>. Indeed, for all even 2>, =->; thus, the left-hand side is the product of all >-\>>, for =0,2,\,2*i-2>. The claim follows by writing >, observing that |]>=|]>>. The previous lemma implies an algorithm of complexity > that takes as input the coefficients ,\,p-1,1>> on the Newton basis, and outputs on the monomial basis. It suffices to compute all polynomials >> (on the monomial basis) by means of the recursive formula. Computing >> from >> and >> takes > additions and > multiplications by powers of >, so going from index to takes a total of -1> additions and > multiplications. The inverse conversion takes time > as well, since knowing >>, we can recover first >> for free as the high-degree terms of >>, then >> using > additions and > multiplications. The conversion algorithm from the Newton to the monomial basis can be depicted as follows, in the case , . The flow of the algorithm goes down, from to ; the th row contains the 16 coefficients of the polynomials >,\,P>-1>> (on the monomial basis), in that order, \ and each oblique line corresponds to a multiplication by a root of unity. The algorithm does only ``half-butterflies'', compared to the FFT algorithm. |gr-geometry||gr-color|black|gr-line-width|2ln|gr-frame|>|gr-grid||gr-grid-old||0.75>|gr-edit-grid-aspect|||>|gr-edit-grid||gr-edit-grid-old||0.75>|gr-grid-aspect|||>|gr-grid-aspect-props|||>|gr-arrow-end|\||||||||||||||||||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||>>||||>>||||>>||||>>|>|>|>|>|>>>|Schematic representation of the conversion Newton to monomial for > If we assume that 2>, we will be able to avoid useless computations, by keeping track of the zero coefficients in the polynomials >>. The next figure shows the situation for ; this is similar to what happens in van der Hoeven's TFT algorithm, but much simpler (here, at each level, we can easily locate the zero coefficients). |gr-geometry||gr-color|black|gr-line-width|2ln|gr-frame|>|gr-grid||gr-grid-old||0.75>|gr-edit-grid-aspect|||>|gr-edit-grid||gr-edit-grid-old||0.75>|gr-grid-aspect|||>|gr-grid-aspect-props|||>|gr-arrow-end|\|||||||||||||||||||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>||>>|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||>>||||>>||||>>||||>>|>|>|>|>|>>>|Schematic representation of the conversion Newton to monomial for > The pseudo-codes for the conversion from Newton basis to monomial basis and the inverse transformation are as follows: <\named-specified-algorithm|> an array of length that contains the coefficients > the Newton basis the same array now contains the coefficients > the monomial basis <|named-specified-algorithm> ,q-1> \ \ \ >, > \ \ \ ,m-1> \ \ \ \ \ \ ,2-1> \ \ \ \ \ \ \ \ \ *i+j|]>\\>*p*i+j+2|]>> \ \ \ ,r-2-1> \ \ \ \ \ \ *i+j|]>\\>*p*i+j+2|]>> <\named-specified-algorithm|> an array of length that contains the coefficients > the monomial basis the same array now contains the coefficients > the Newton basis <|named-specified-algorithm> ,0> \ \ \ >, > \ \ \ ,m-1> \ \ \ \ \ \ ,2-1> \ \ \ \ \ \ \ \ \ *i+j|]>\\>*p*i+j+2|]>> \ \ \ ,r-2-1> \ \ \ \ \ \ *i+j|]>\\>*p*i+j+2|]>> We deduce the following complexity result for the conversions, which refines Lemma ; it is of the form >, with a tight control on the constants.\ <\lemma> Using the TFT evaluation points, for \>, given >|)>d>>, one can compute >|)>d>> using d/2\> additions or subtractions, and d/2\> multiplications by roots of unity, with log d\>. <\proof> For any given , we do *m+max,0|)>> additions/subtractions and multiplications. This is at most d/2\>. The equivalent of Lemma for the TFT points comes by using van der Hoeven's TFT algorithms for evaluation and interpolation on the monomial basis, instead of the general algorithms. Projections and Sections> Let \> be a finite initial segment and let ,\,d|)>> be such that is contained in ,\,d>>. We present here some geometric operations on that will be useful for the evaluation and interpolation algorithms.\ We will denote by \\> the projection <\equation*> I==,\,i|)>\\:,\,i|)>\I|}> of on the ,\,i|)>>-coordinate plane. For > in >, we let |)>\1> be the unique integer such that |)>-1,i,\,i|)>\I> and |)>,i,\,i|)>\I>. In particular, |)>\d> holds for all >.\ In Figure, we have =5>; > consists of the points of ordinates on the vertical axis, with =5>, =4>, =2> and =1>. Finally, if =,\,v|)>> is a collection of points as defined in the introduction, with \\>> for all n>, then we will write =,\,v|)>>. For \d>, we let >> be the section <\equation*> I>=,\,i|)>\I:i=j|}> and we let >> be the projection of >> on the ,\,i|)>>-coordinate plane. In other words, =,\,i|)>> is in >> if and only if ,i,\,i|)>> is in . We have the following equivalent definition <\equation*> I>==,\,i|)>\I:d|)>\j|}>. Because the sets >> form a partition of , we deduce the equality ==0>-1>>|\|>>. Notice also that all >> are initial segments in >. In Figure , we have =>, =>>, =>, => and =>. From now on, we focus on multivariate polynomials. In all this section, we fix a finite initial segment \> and ,\,d> such that I,\,d>>. Naturally, polynomials in |]>> may be written in the monomial basis >|)>\I>>, but we may also use the multivariate Newton basis ,>|)>\I>>, defined by <\eqnarray*> ,>|)>>||,v>|)>*\*N,v>|)>.>>>> Generalizing the univariate notation, given \>, we will consider a mixed monomial-Newton basis ,,\>|)>\I>> with <\eqnarray*> ,,\>|)>>||,v,\>|)>*\*N,v,\>|)>.>>>> As in the univariate case, we will write ,,\>|)>\I>> to indicate that is written on the corresponding basis. It will be useful to rely on the following decomposition. Let be in |]>>, written on the basis ,,\>|)>\I>>. Collecting coefficients, we obtain <\equation> P=\I>p,\,\>*N,,\>==,\,i|)>\I>P,\,\>|)>*N,v,\>|)>*\*N,v,\>|)>, with =,\,i|)>> and <\equation> P,\,\>|)>=|)>-1>=0>p,\,\>*N,v,\>|)>. Keep in mind that if the indices > and > are omitted, we are using the Newton basis. <\lemma> Let > be in >, and let > be obtained by replacing > by > in >, for some in ,n|}>>. Let be in |]>>>. Given ,,\>|)>\I>>, one can compute ,,\>|)>\I>> in time <\equation*> O|)>*log d|d>*|)>. <\proof> Using a permutation of coordinates, we reduce to the case when . Using the above notations, it suffices to convert ,\,\>|)>> from the basis ,v,\>|)>\d>> to the basis ,v,1-\>|)>> for all \I>. By Lemma , each conversion can be done in time |)>|)>*log |)>|)>|)>>, so the total cost is <\equation*> O\I>|)>|)>*log |)>|)>|)>=O\I>|)>|)>*log |)>|)>|d|)>>*d|)>|)>. Since the function *log /d> is increasing, we get the upper bound <\equation*> O\I>|)>*log d|d>*d|)>|)>=O|)>*log d|d>*\I>d|)>|)>; the conclusion follows from the equality \I>d|)>=>. Let us write =,0|)>> and =,1|)>>, where both vectors have length . Then, the basis ,,\>|)>\I>> is the monomial basis, whereas the basis ,,>|)>\I>> is the Newton basis.>> Changing one coordinate at a time, we obtain the following corollary, which shows how to convert from the monomial basis to the Newton basis, and back. <\lemma> Let > be in > and let be in |]>>>. Given ,,>>|)>\I>>, one can compute ,,\-\>|)>\I>> in time <\equation*> O|)>*log d|d>+\+|)>*log d|d>|)>*|)>. The remarks in Section about special families of points apply here as well: if the points in > have special properties (e.g., > is in geometric progression, or the > are TFT points), the cost may be reduced (both in the geometric case and in the TFT case, we may save the factors >). We are now in a position to state and prove our main result. <\theorem> Given ,P|)>> such that I,\,d>>, with written on the monomial basis of |]>>, one can evaluate at |)>> in time\ <\equation*> O|)>*log d|d>+\+|)>*log d|d>|)>*|)>. Conversely, given the values of \ at |)>>, one can compute the representation of on the monomial basis of |]>> with the same cost. \ Using the bound =O>, and the fact that \> holds for all , we deduce the simplified bound *log *log log |)>> claimed in the introduction. Remark also that our result matches the cost of the algorithm of, which applies in the special case of evaluation-interpolation at a grid. The input to the evaluation algorithm is given on the monomial basis of |]>>; however, internally to the algorithm, we use the Newton basis. Thus, before entering the (recursive) evaluation algorithm, we switch once and for all to the Newton basis; this does not harm complexity, in view of Lemma . Similarly, the interpolation algorithm uses the Newton basis, so we convert the result to the monomial basis after we have completed the interpolation. Remark also that if the points ,\,v-1>> are in geometric progression for each , then one may eliminate the factors > from the complexity bound. Using TFT evaluation points allows for similar reductions. The algorithm follows a pattern similar to Pan's multivariate evaluation and interpolation at a grid: e.g. for evaluation, we evaluate at the fibers above each \I>, and proceed recursively with polynomials obtained from the sections >>. Using the Newton basis allows us to alleviate the issues coming from the fact that |)>> is not a grid.\ Let |]>> be written (in the Newton basis) as in the previous section: <\eqnarray*> ,\,x|)>>||=,\,i|)>\I>=0>|)>-1>p,\>*N,v>|)>*N,v>|)>*\*N,v>|)>>>|||=,\,i|)>\I>P,\>|)>*N,v>|)>*\*N,v>|)>,>>>> where we write =,\,i|)>> and <\equation*> P,\>|)>==0>|)>-1>p,\>*N,v>|)>. To \d>, we associate the >-variate polynomial <\equation*> P>,\,x|)>=|=,\,i|)>\I>>>>>>>>>>>>P,\>>|)>*N,v>|)>*\*N,v>|)>. The key to our algorithms is the following proposition. <\proposition> For all =,\,j|)>\I>, the following equality holds: <\equation*> P>,\,v>|)>=P>>,\,v>|)>. <\proof> First, we make both quantities explicit. The left-hand side is given by <\eqnarray*> >,\,v>|)>>||=,\,i|)>\I>=0>|)>-1>p,\>*N,v>>|)>*N,v>>|)>*\*N,v>>|)>,>>>> whereas the right-hand side is <\eqnarray*> >>,\,v>|)>>|||=,\,i|)>\I>>>>>>>>>>>>=0>|)>-1>p,\>*N,v>>|)>*N,v>>|)>*\*N,v>>|)>,>>>> where in both cases we write =,\,i|)>>. Thus, to conclude, it is enough to prove that, for \I\I>>, we have ,v>>|)>*N,v>>|)>*\*N,v>>|)>=0>. Indeed, recall that the assumption \I\I>> implies |)>\j>. On the other hand, we have \I>, whence the inequality \d|)>>, where we write =,\,j|)>>. In particular, we deduce |)>\d|)>>, which in turn implies that \>. Thus, there exists ,n|}>> such that \j>. This implies that ,v>>|)>=0>, as requested. Given ,P|)>>, with |]>> written in the Newton basis ,>|)>\I>>, we show here how evaluate at |)>>. The algorithm is the following. <\itemize> If , is a constant; we return it unchanged. Otherwise, we compute all values ,\>>|)>>, for \I> and j\d|)>>, by applying the fast univariate evaluation algorithm to each ,\>>. For j\d>, and for \I>>, we have (by definition) \d|)>>, so we have all the information we need to form the polynomial >,>|)>\I>>. Then, we evaluate recursively each >> at >,|)>>, for j\d>. <\proposition> The above algorithm correctly evaluates at |)>> in time <\equation*> O|)>*log d|d>+\+|)>*log d|d>|)>*|)>. <\proof> Correctness follows directly from Proposition , so we can focus on the cost analysis. Let ,\,d|)>> denote the cost of this algorithm. The former discussion shows that =0> and that ,\,d|)>> is the sum of two contributions: <\itemize> the cost of computing all values ,\>>|)>>, for \I> and \d|)>> the cost of the recursive calls on >,,P>|)>> for j\d>. Lemma shows that the former admits the upper bound <\equation*> O\I>|)>|)>*log |)>|)>|)>; as in the proof of Lemma , this can be bounded by <\equation*> O|)>*log d|d>*|)>. As to the recursive calls, notice that all >> are contained in >, which is contained in ,\,d>>. Thus, for some constant , we obtain the inequality <\equation> >E,\,d|)>\\d>E>,d,\,d|)>+K*|)>*log d|d>*. To conclude, we prove that for all , for all ,\,d> and for any initial segment I,\,d>>, we have <\equation> E,\,d|)>\K*|)>*log d|d>+\+|)>*log d|d>|)>*. Such an inequality clearly holds for . Assume by induction on that for any ,\,d> and any initial segment I,\,d>>, we have \ <\equation> E,\,d|)>\K*|)>*log d|d>+\+|)>*log d|d>|)>*. To prove (), we substitute () in (), to get <\eqnarray*> ,\,d|)>>|>|\d>K*|)>*log d|d>+\+|)>*log d|d>|)>*>|\|>>>||||)>*log d|d>*.>>>> Since \d>>|\|>=>, we are done. The interpolation algorithm is obtained by reversing step-by-step the evaluation algorithm. On input, we take ,F|)>>, with >; the output is the unique polynomial ,>|)>\I>> such that >=P,>|)>> for all \I>. <\itemize> If , consists of a single entry; we return it unchanged. Otherwise, we recover recursively all >,>|)>\I>>, for j\d>. This is made possible by Proposition, which shows that we actually know the values of each >> at the corresponding >,|)>>. Knowing all >> gives us the values ,\>>|)>> for all \I> and j\d|)>>. It suffices to interpolate each ,\>> on the Newton basis ,v>|)>\d|)>>> to conclude. Correctness of this algorithm is clear and the following complexity bound is proved in asimilar way as in the case of evaluation. <\proposition> The above algorithm correctly computes ,>|)>\I>> in time <\equation*> O|)>*log d|d>+\+|)>*log d|d>|)>*|)>. We conclude with an application of our results to the multiplication of polynomials and power series. Let and ,\,d> be as above. We let ,\,d|)>>, as we assume that> has cardinality at least , so that we can find =,\,v|)>>, where =,\,v-1>|)>> consists of pairwise distinct entries in >. Let =1+max +\+i:,\,i|)>\I|}>>, so that \\n>. We discuss here the case when we want to multiply two polynomials \\|]>>> and \\|]>>> with +I=I>. In this case, we may use a simple evaluation-interpolation strategy. <\itemize> Perform multi-point evaluations of > and > at |)>>; Compute the componentwise product of the evaluations; Interpolate the result at |)>> to yield the product *P>. By Theorem, this can be done in time <\equation*> O|)>*log d|d>+\+|)>*log d|d>|)>*|)>=O*log d|d>*|)>. If > admits at least points in geometric progression (or at least TFT points), then the factor may be removed. This result should be compared to the algorithm of , which has complexity |)>*log |)>>; that algorithm applies to more general monomial supports, but under more restrictive conditions on the base field. Let now > be the monomial ideal generated by >:\I|}>>. We discuss here the complexity of multiplication modulo in |]>/\>. To our knowledge, no general algorithm with a complexity quasi-linear in > is known. Let us first recall an algorithm of and show how our results enable us to improve it. Theorem1 of gives an algorithm for multiplication in |]>/\>, that relies on the following operations: <\itemize> |)>> multi-point evaluations at |)>> of polynomials in |]>>; > univariate power series multiplication in precision |)>>; |)>> interpolations at |)>> of polynomials in |]>>. The paper does not specify how to do the evaluation and interpolation (for lack of an efficient solution); using our results, it becomes possible to fill all the gaps in this algorithm. Applying Theorem, without doing any simplification, we obtain a cost of <\equation*> O|)>*log d|d>+\+|)>*log d|d>|)>**\+|)>|)>. Using the inequality \\>, this gives the upper bound |)>*log \*|)>>. If we can take at least points in geometric progression in > (or at least TFT points), then the upper bound reduces to |)>*|)>>. The most important case of truncated power series multiplication is when we truncate with respect to the total degree. In other words, we take ,\,i|)>:i+\+i\\|}>>. In that case, several alternative strategies to the one of the former subsection are available, and we refer to for some benchmarks. As it turns out, one can apply the result from Section, in the special case of polynomials supported in total degree, to improve these algorithms, when> admits at least points in geometric progression (or at least TFT points). Indeed, the algorithms from rely on multivariate polynomial multiplication. Using the result of Section in these algorithms (instead of sparse polynomial multiplication), we obtain a new algorithm of time complexity |d>*|)>> instead of |)>*log |)>>. For constant , this removes a factor > from the asymptotic time complexity. To finish, we would like to point out that the present paper almost repairs an error in5>, which was first announced in. Indeed, it was implicitly, but mistakenly, assumed that Proposition also holds for monomial bases. The present ``fix'' simply consists of converting to the Newton basis before evaluating, and similarly for the inverse. The asymptotic time complexity analysis from 5> actually remains valid up to a small but non trivial constant factor. When using TFT transforms in combination with the algorithms from section, we expect the constant factor to be comprised between one and three in practice. <\bibliography|bib|alpha|all> <\bib-list|vdHL09> A.Borodin and R.T. Moenck. Fast modular transforms. , 8:366--386, 1974. D.Bini and V.Y. Pan. . Birkhäuser Boston Inc., Boston, MA, 1994. Fundamental algorithms. A.Bostan and É.Schost. Polynomial evaluation and interpolation on special sets of points. , 21(4):420--446, 2005. D.G. Cantor and E.Kaltofen. On fast multiplication of polynomials over arbitrary algebras. , 28(7):693--701, 1991. J.Canny, E.Kaltofen, and Y.Lakshman. Solving systems of non-linear polynomial equations faster. In G.Gonnet, editor, , pages 121--128, Portland, Oregon, 1989. ACM. J.vonzur Gathen and J.Gerhard. . Cambridge University Press, 2-nd edition, 2003. G.Lecerf and É. Schost. Fast multivariate power series multiplication in characteristic zero. , 5(1):1--10, September 2003. F.Mora. De nugis Groebnerialium 2: Applying Macaulay's trick in order to easily write a Gröbner basis. , 13(6):437--446, 2003. G.Mühlbach. On multivariate interpolation by generalized polynomials on subsets of grids. , 40(3):201--215, 1988. V.Pan. Simple multivariate polynomial multiplication. , 18(3):183--186, 1994. T.Sauer. Lagrange interpolation on subgrids of tensor product grids. , 73(245):181--190, 2004. É.Schost. Multivariate power series multiplication. In M.Kauers, editor, , pages 293--300, New York, NY, USA, 2005. ACM. J.vander Hoeven. Relax, but don't be too lazy. , 34:479--542, 2002. J.vander Hoeven. The truncated Fourier transform and applications. In J.Gutierrez, editor, , pages 290--296, Univ. of Cantabria, Santander, Spain, July 4--7 2004. ACM. J.vander Hoeven. Notes on the Truncated Fourier Transform. Technical Report 2005-5, Université Paris-Sud, Orsay, France, 2005. J.vander Hoeven and G.Lecerf. On the bit-complexity of sparse polynomial multiplication. Technical Report, Arxiv, 2009. H.Werner. Remarks on Newton type multivariate interpolation for subsets of grids. , 25(2):181--191, 1980. <\initial> <\collection> <\references> <\collection> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > |> > > > |\>|5>> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > <\auxiliary> <\collection> <\associate|bib> Scho05 BoMo74 Sauer04 Mora03 Werner80 Sauer04 BoMo74 Pan94 Werner80 Muhlbach88 CKL89 LeSc03 vdH:relax vdH:sparsemult vdH:tft vdH:tft-note Scho05 Scho05 Scho05 GaGe03 CaKa91 BiPa94 BoMo74 BoSc05 vdH:tft vdH:tft-note Pan94 Pan94 CKL89 Scho05 Scho05 Scho05 LeSc03 vdH:tft vdH:tft-note vdH:sparsemult vdH:tft-note vdH:sparsemult LeSc03 vdH:sparsemult vdH:tft vdH:tft-note vdH:tft <\associate|figure> An initial segment of cardinality 12 in |\>|> |d=16>|> |d=11>|> <\associate|toc> |math-font-series||font-shape||1.Introduction> |.>>>>|> |Overview |.>>>>|> > |Problem statement |.>>>>|> > |Previous work |.>>>>|> > |Conventions |.>>>>|> > |math-font-series||font-shape||2.Univariate Algorithms> |.>>>>|> |2.1.General results |.>>>>|> > |2.2.TFT points |.>>>>|> > |math-font-series||font-shape||3.Projections and Sections> |.>>>>|> |Projections |.>>>>|> > |Sections |.>>>>|> > |math-font-series||font-shape||4.Multivariate Bases> |.>>>>|> |math-font-series||font-shape||5.Multivariate Evaluation and Interpolation> |.>>>>|> |5.1.Setup |.>>>>|> > |5.2.Evaluation |.>>>>|> > |5.3.Interpolation |.>>>>|> > |math-font-series||font-shape||6.Applications> |.>>>>|> |6.1.Multiplication of polynomials |.>>>>|> > |6.2.Multiplication of power series |.>>>>|> > |6.3.Power series with total degree truncation |.>>>>|> > |math-font-series||font-shape||Bibliography> |.>>>>|>