






















Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
The partial fraction decomposition of multivariate rational functions using Leınartas' decomposition and a new monomial ordering. The authors propose a method for the separation of denominator zeros while allowing for deviations from Leınartas' form to reduce denominator degrees. The document also covers ideal identification and the elimination of spurious denominators.
What you will learn
Typology: Study notes
1 / 30
This page cannot be seen from the preview
Don't miss anything!
Matthias Hellera, Andreas von Manteuffelb aPRISMA + (^) Cluster of Excellence, Johannes-Gutenberg Universit¨at, 55099 Mainz, Deutschland bDepartment of Physics and Astronomy, Michigan State University, East Lansing, Michigan 48824, USA
Abstract We present a package to perform partial fraction decompositions of multivari- ate rational functions. The algorithm allows to systematically avoid spurious denominator factors and is capable of producing unique results also when be- ing applied to terms of a sum separately. The package is designed to work in Mathematica, but also provides interfaces to the Form and Singular computer algebra systems.
Email addresses: maheller@students.uni-mainz.de (Matthias Heller), vmante@msu.edu (Andreas von Manteuffel)
Contents
1 Introduction 2
2 Motivation 3 2.1 Spurious poles in iterated partial fractions............. 3 2.2 Features of Le˘ınartas’ decomposition................ 4 2.3 A wish-list for a “good” partial fractioning algorithm....... 6
3 Multivariate partial fractions with polynomial reduction 7 3.1 Reduction algorithm......................... 7 3.2 Monomial ordering.......................... 8 3.3 Example for the algorithm...................... 9 3.4 Efficient reduction of factorized inputs............... 11 3.5 A comment on rational reconstructions............... 11
4 The package 13 4.1 Installation and basic usage..................... 13 4.2 Advanced usage pattern....................... 14 4.3 Interface with Singular........................ 16 4.4 Interface with Form......................... 17
5 Applications 18 5.1 One-loop amplitudes for γ ∗ γ ∗^ → l + l −^ with finite lepton mass.. 18 5.2 Two-loop amplitudes for gg → ZZ with a closed top-quark loop. 19 5.3 Two-loop amplitudes for massless five-particle scattering..... 20
6 Conclusion and outlook 22
Appendices
A Polynomial reductions 23
B Le˘ınartas’ requirements and polynomial reductions 25
1. Introduction
Employing partial fraction decompositions to bring analytic expressions into a unique form has a long history in particle physics. Already one of the first computer algebra systems (CAS), Veltman’s program Schoonschip [1], that was developed in 1963 to calculate radiative corrections, had a function to par- tial fraction products of two or three rational functions [2]. With Schoonship’s successor Form [3, 4], partial fraction decompositions of rational functions be- came widely established in the particle physics community. While the standard partial fraction decomposition is a method for rational functions of a single vari- able, it is often applied iteratively to treat multivariate functions. However, this generalization has two drawbacks: first this method generally introduces new
fraction decomposition of r ( x ) is given by
r ( x ) =
i
j ≤ αi
ni ( x ) dji ( x )
where in each term the degree of the numerator is smaller than the degree of the denominator. As an example, consider the partial fraction decomposition
x ( x − 1)( x + 1)^2
4( x + 1)
2( x + 1)^2
4( x − 1)
In the case of multivariate rational functions r ( x, y,... ) the partial frac- tioning can be performed iteratively in each variable. One performs a partial fraction decomposition with respect to the first variable x , treating the other variables as constants during this step. The resulting coefficients pi are now rational functions of the remaining variables, and one can perform a partial fraction decomposition of the pi ( y,... ) with respect to the next variable y. One iterates until the coefficients are actual numbers. As an example, consider the function r ( x, y ) = 1 / (( x − f ( y ))( x − g ( y ))), where f ( y ) and g ( y ) are two differ- ent polynomials of y. A partial fractioning with respect to x gives
1 ( x − f ( y ))( x − g ( y ))
( f ( y ) − g ( y ))
( x − f ( y ))
( f ( y ) − g ( y ))
( x − g ( y ))
The partial fractioning in x thus introduces a denominator f ( y ) − g ( y ), which may have zeros at regular points of the original rational function r ( x, y ). For example, consider the special case
1 ( x + y )( x − y )
2 y
( x − y )
2 y
( x + y )
where the subsequent partial fractioning of the x -independent coefficients in y is trivial. Although the original expression is manifestly regular at y = 0, the individual terms of the partial fractioned form are not—they introduce spurious poles 1 /y. This obscures the interpretation of the singularity structure of the expression and can lead to loss of precision in its numerical evaluation close to y = 0. Note that a different spurious pole would have appeared in this example if we had chosen to first partial fraction in y and then in x. We conclude that iterated partial fractioning will in general introduce spu- rious poles and is therefore not an ideal approach to the multivariate case.
2.2. Features of Le˘ınartas’ decomposition
Le˘ınartas’ decomposition is an approach to multivariate partial fraction- ing, which avoids the introduction of spurious singularities. In this Section, we review this decomposition and comment on possible ambiguities arising in practical calculations. Polynomial reductions and the usage of Gr¨obner bases will play an important role here and in the following; in case the reader is not familiar with these concepts we recommend to read Appendix A first.
Definition 1. Le˘ınartas’ decomposition [5, 6] of a rational function r of the variables x 1 ,... , xn with coefficients in the field K is a decomposition of the form
r ( x 1 ,... ) =
S
n S ( x 1 ,... ) ∏ i ∈S d
αi i ( x^1 ,... )^
where, for each term of the decomposition, S is an index set, such that all denominators di with i ∈ S
(i) have common zeros in K n , and
(ii) are algebraically independent.
Here, K denotes the algebraic closure of K , e.g. the algebraic numbers for K = Q or C for K = R.
A set of polynomials { d 1 ,... , dm } is called algebraically dependent if there exists a non-zero polynomial A in m variables such that A ( d 1 ,... , dm ) = 0, see e.g. [10, 11]. A is called the annihilator of the ideal generated by the polynomi- als { d 1 ,... , dm }. The annihilator can be obtained by calculating the Gr¨obner basis of the ideal { y 1 − d 1 ( x 1 ,... , xn ) ,... , ym − dm ( x 1 ,... , xn )}, if one chooses a monomial ordering in which yi ≺ xj ∀ i, j. A set of polynomials is called alge- braically independent if it is not algebraically dependent. Since for n variables at most n polynomials are algebraically independent, there can be at most n different denominator factors for each term in (5).
Algorithm 1. Le˘ınartas’ decomposition of a rational function can be reached in two reduction steps [6]:
In contrast to iterated partial fractioning, these decomposition steps do not introduce new singularities. Appendix B gives more details for this algorithm. A decomposition that fulfills requirements (i) and (ii) is not unique. In order to resolve this ambiguity, Refs. [8, 12] require additionally for each term (5), that the numerator p S is reduced with respect to the ideal generated by the denominators { di | i ∈ S}. We note that the algorithm of [12] assumes the input expression to be a single rational function r = n/d with polynomials n and d and starts with a factorization of d. Further ambiguities can arise due to spurious denominators which are not automatically removed. The algorithm in [12] for example does not guarantee a unique result, if n and d are not coprime. However, common factors between numerator and denominator can always be eliminated by first performing a greatest-common-divisor computation. In practical applications one also encounters sums of rational functions, and it can be useful to decompose individual terms of the sum separately instead of
3. Multivariate partial fractions with polynomial reduction
3.1. Reduction algorithm
Let { d 1 , ...dm } be the irreducible denominators of a rational function or a sum of rational functions with di ∈ K [ x 1 ,... , xn ]. Consider the ideal
I = 〈 q 1 d 1 ( x 1 ,... ) − 1 ,... , qmdm ( x 1 ,... ) − 1 〉 , (9)
where I ⊂ K [ q 1 ,... , qm, x 1 ,... , xn ] and qi label inverse denominators. The main idea here is that setting the generators of the ideal qidi ( x 1 ,... ) − 1 to zero corresponds to the relation qi = 1 /di ( x 1 ,... ). If we rewrite a rational function r as a polynomial in the variables q 1 ,... , x 1 ,... and reduce it with respect to the ideal I , we do not introduce new denominator factors and obtain a unique representation. Furthermore, whenever we encounter a product qidi it will be reduced to 1. By choosing a suitable monomial ordering, one can control further features of the reduced form as will be discussed in more detail in Section 3. and Appendix B. Here, we only note that for any monomial ordering, which sorts first for the qi and then for the xi , denominators with disjoint zeros will be separated and it is justified to call the reduction a partial fraction decomposition. Using such a monomial ordering, we thus achieve a multivariate partial fraction decomposition with the following two steps: 1. calculate the Gr¨obner basis of the ideal I and 2. reduce the rational function with respect to this Gr¨obner basis. This reduction yields a unique remainder, which is the partial fractioned form of r. A complete algorithm to bring a rational function into a unique partial fractioned form can be formulated as follows (see also [9]).
Algorithm 2. Multivariate partial fraction decomposition. A rational function r ( x 1 ,... ) ∈ K [ x 1 ,... ] can be decomposed into partial fractions using the follow- ing steps.
Step 1 eliminates spurious poles and ensures a unique final form. When operating on large sums, it may be useful to skip this step and operate on the
invidual terms of the sum separately. In this situation, one can still arrive at a unique output for the sum when considering the decomposition of each term separately, but using the global set of denominators in the sum. For instance, for the example of Section 2.2, Algorithm2 finds a unique form independent of the specific initial form of r (Eqs. (7) and (8)) once all possible denominators in the problem are specified. The difference with respect to the standard Le˘ınartas decomposition lies in the fact, that we specify by the monomial ordering which denominators are preferred in the partial fractioned result. The elimination of denominators which are known to be spurious can then be achieved by a suitable choice of the monomial ordering; this will be discussed in the next Section. Step 6 is optional, of course. Leaving the denominators in abbreviated form can allow for more compact representations and as a preparation for an efficient numerical implementation.
3.2. Monomial ordering
The choice of monomial ordering has a crucial impact on the properties of the output of Algorithm 2 and the performance of its computation. We show in Appendix B that the output form will satisfy Le˘ınartas’ requirement (i) and thus separate denominators with disjoint zeros as long as the monomial ordering orders all qi before the xi , while Le˘ınartas’ requirement (ii) may or may not be satisfied depending on further details. The calculation of the Gr¨obner basis can be very challenging for practical applications of Algorithm 2, depending heavily on the choice of monomial order- ing. Here we propose a specific monomial ordering which aims to provide good computational performance. We tested this ordering in various calculations of scattering amplitudes, and we were able to compute the Gr¨obner basis and partial fraction the required rational functions in all cases that we considered. To motivate our choice of monomial ordering, let us go back to Eq. (3). Note that the prefactors in front of the denominators x − f ( y ) and x − g ( y ) do not depend on x. In the case where now f ( y )− g ( y ) is itself a valid denominator, this identity would therefore actually be a valid replacement rule and corresponds to a polynomial in the ideal I in Eq. (9). To ensure that this polynomial leads to the reduction (3), one can choose a monomial ordering, in which the inverse denominator variables q 1 and q 2 corresponding to d 1 = x − f ( y ) and d 2 = x − g ( y ), respectively, are “greater” than the inverse denominator variable q 3 corresponding to d 3 = f ( y )− g ( y ). This motivates the use of a block ordering, in which we group all denominators depending on x and y and all denominators depending on only x or only y.
Algorithm 3. Monomial block ordering. A suitable monomial ordering for the ring K [ q 1 ,... , qm, x 1 ,... , xn ] in Algorithm 2 can be constructed as follows.
Our monomial ordering is defined by
{{ q 3 , q 1 } , { q 2 } , { x, y }}. (16)
and the resulting Gr¨obner basis is obtained as
g = {−1 + q 2 y, −1 + q 1 x − q 1 y, −1 + q 3 x + q 3 y, − q 1 q 2 + 2 q 1 q 3 + q 2 q 3 }. (17)
Reducing r = (2 x − y ) q 1 q 2 q 3 with respect to g yields the reduced form
r = −
q 1 q 2 +
q 2 q 3 =
2 y ( x + y )
2 y ( y − x )
which is our partial fractioned result. Lets now assume we start with the equiv- alent expression from Eq. (8), i.e.
r =
y ( x + y )
( x − x )( x + y )
= q 1 q 2 + q 2 q 3_._ (19)
Reducing this expression with respect to g indeed yields exactly the same result as before, given by Eq. (18). Therefore, in this example, our algorithm recognizes that both input forms of r are equivalent, and gives a unique result. If we however start in another form, in which spurious denominators occur, one has to be careful. Let us consider a different representation of the same rational expression r in (14), this time containing an additional spurious denominator:
r =
y ( x + y )
2 x
( y − x )
2 x
( x + y )
In this case we would identify four denominators and consider the ideal
I = 〈 q 1 ( x − y ) − 1 , q 2 y − 1 , q 3 ( x + y ) − 1 , q 4 x − 1 〉. (21)
Our method produces in this case the block ordering
{{ q 3 , q 1 } , { q 2 } , { q 4 } , { x, y }}. (22)
Calculating the corresponding Gr¨obner basis and reducing with respect to that basis yields
r = −
q 3 q 4 −
q 1 q 4 + q 2 q 4_._ (23)
We see that the spurious inverse denominator q 4 does not drop out, since we use a monomial ordering in which q 4 ≺ q 1 , q 2 , q 3. However, if we would have chosen a different monomial ordering, in which q 4 is greater than all other qi , the spu- rious denominator would drop out after reduction. In this way, one can locally eliminate denominators which are known to be spurious or add additional de- nominators to the problem without altering previous reductions. These features are also supported by our package, cf. Section 4.
3.4. Efficient reduction of factorized inputs
If the input expression is in a form with a single common denominator, i.e.
r = qα 1 1 ...qα mm × N , (24)
where N is a possibly lengthy numerator, it may be optimal from a performance perspective to just fully expand the polynomial prior to reduction. In this case, we propose to the following guided scheme.
Algorithm 4. Iterated reductions. The polynomial reduction of r in Eq. (24) with respect to I can be performed as follows.
The reason why this reduction scheme can be much faster than a “naive” direct reduction is, that the decomposed form of the common denominator q 1 α 1 ,... , qα mm alone can result in huge expression, which only shortens once the numerator is taken into account. The iterative reduction of one denominator at a time avoids this intermediate expression swell, because it avoids the clustering of many denominators at one reduction step. In the Mathematica functions of our package, the iterated scheme above can be selected as an option. Our Form implementation of the polynomial reductions uses this scheme by default. We observed an additional speed-up in our implementation in Mathematica by partitioning the whole expression into smaller pieces and reducing these individually in step 2. An example with a comparison of timings for different sizes of these partitions can be found in Section 5.3.
3.5. A comment on rational reconstructions
Symbolic manipulations of large rational expressions can be computationally expensive. Finite field sampling and rational reconstruction techniques allow to prevent intermediate expression swell and have become quite standard in high energy physics calculations today [13, 14, 15, 16, 17, 18]. The basic idea is to set the indeterminates to numerical values in prime fields, perform all compli- cated manipulations with machine-sized integers instead of rational functions, and to reconstruct the final rational function of interest from many such sam- ples. In this Section we would like to discuss the usage of information about the denominator structure for an improved reconstruction of rational functions. A major goal is to reduce the number of samples needed to reconstruct the rational functions, thus speeding up the computation. Furthermore, in applications in- volving linear relations between Feynman integrals, the partial fractioned forms
In step 3 our guess may be off due the presence of a new denominator factor which was not in the candidate list or a factor pi appearing in the coefficients of the numerator polynomial N. One could imagine to repeat the above construc- tion for several samples of the indeterminates and combine this information to validate or correct the guess. In our experiments we have just picked somewhat larger integers and were in fact not even faced with these problems for the cases that we checked. The above method lets us therefore identify (parts of) the denominator of the expression we want to reconstruct. A robust way to use this guess for the full reconstruction of a rational function is to multiply all samples with this denomi- nator and reconstruct the resulting expression as if it was a rational function. If the guess was accurate, only the numerator needs to be reconstructed, thereby reducing the number of required samples. We emphasize that this method will allow for a successful reconstruction of the result even if the guess was incom- plete or inaccurate. After reconstruction one can perform the partial fractioning as discussed in Section 3. We successfully applied this method to integration-by-parts reductions of Feynman integrals for problems with up to three loops. Considering the re- construction of just a single variable, we typically observe a reduction of the number of samples by a factor of about 2 due to the guessed denominators. For a reduction problem with five variables, the iterated reconstruction of all variables resulted in an overall reduction of the number of samples by about a factor of 10. As a next step, one can ask if it is possible to directly reconstruct the result in partial fractioned form. Indeed, assuming one knows all irreducible denom- inator factors of an expression beforehand, our method in Section 3 actually allows to systematically construct a basis of all monomials that can be expected in the final partial fractioned result, using a bound on the monomial degree in the construction. This, in principle, allows to match against an ansatz and re- construct the partial fractioned form directly. We observed in our experiments that depending on the exact strategy the ansatz in partial fractioned form may require more samples to fix the free coefficients than the reconstruction in the common denominator representation along the lines described above. Further- more, an incomplete list of denominator factors would prevent a successful fit of a partial fractioned ansatz as well as an insufficient degree of the ansatz. In contrast, the method for the reconstruction in common-denominator form presented above is robust with respect to incomplete denominator information.
4. The package
4.1. Installation and basic usage
We implement the described algorithm in a Mathematica package, that can be downloaded as follows:
git clone https://gitlab.msu.edu/vmante/multivariateapart.git
The package consists of just a single file, MultivariteApart.wl, which could also be downloaded individually. We recommend to place it in a standard Math- ematica packages directory, e.g. ~/.Mathematica/Applications, such that it can be loaded with
In[1]:= Needs["MultivariateApart‘"]
from any directory. Alternatively, it can always be loaded by specifying the full path to the file. The main function, which implements the algorithm described in Section 3 can be called by MultivariateApart. Using this command on the example of Section 3.3 yields:
In[2]:= MultivariateApart[(2y-x)/(y(x+y)(y-x))]
Out[2]= - 1 2(x-y)y
The function provides a unique representation and may be all that is needed in many cases. It can be convenient to keep the inverse factors abbreviated for further pro- cessing, which can be achieved by using MultivariateAbbreviatedApart in- stead:
In[3]:= MultivariateAbbreviatedApart[(2y-x)/(y(x+y)(y-x))] // Normal
Out[3]= {-((q1 q2)/2) + (3 q2 q3)/2, {q1 → 1/(x - y), q2 → 1/y, q3 → 1/(x + y)}}
Here, Normal was used to convert the dispatch table in the second element of the returned list into normal form. One can pass a list of previously identified denominator factors as a second argument to MultivariateAbbreviatedApart :
In[4]:= MultivariateAbbreviatedApart[(2y-x)/(y(x+y)(y-x)), {x-y,y,x+y}]
This allows one to work with a global list of abbreviations across several expres- sions. The package provides further functions and options, which may be useful for more granular control, performance tuning and interfacing with other computer algebra systems. We will describe some of this functionality in the following. Please see the output of ?MultivariateApart‘* for a full list of available func- tions and options.
4.2. Advanced usage pattern
The “all-in-one” functions described so far internally call a sequence of other functions, which can also be used directly for more advanced use cases. With default options, the first step is a call to Together to eliminate spurious de- nominators. This behavior as well as other details can be configured through the options of the function. Of course, for our example this step is irrelevant. Next, AbbreviateDenominators is called, which finds all denominators in an expression and replaces them by a predefined symbol (the default is qi ).
In[5]:= {expr, dens, qis} = AbbreviateDenominators[(2y-x)/(y(x+y)(y-x)]
Out[5]= {-q1 q2 q3 (-x + 2y), {x - y, y, x + y}, {q1, q2, q3}}
In[11]:= ord = {{q4}, {q3, q1}, {q2}, {x, y}} gb = ApartBasis[dens, qis, ord]; ApartReduce[expr, gb, ord]
Out[11]= - q1 q 2
3 q2 q 2
As expected, the result is free of the spurious pole q 4 and we find the same answer, as using MultivariateApart directly on the whole expression. Let us demonstrate the important fact that, once a monomial order is chosen, the final answer is essentially insensitive to the exact input form, and one can equally well operate on individual terms of a sum:
In[12]:= terms = ApartReduce[-q1 q4/2, gb, ord] + ApartReduce[q2 q4, gb, ord] + ApartReduce[-3 q3 q4/2, gb, ord]
Out[12]= q2 q4 + 3/2 (q2 q3 - q2 q4) + 1/2 (-q1 q2 + q2 q4)
Note how in this case the partial fractioned form of the invidual terms actually exhibit the pole q 4 , but they cancel in the sum after a call to Expand ,
In[13]:= Expand[terms]
Out[13]= - q1 q 2
3 q2 q 2
which is the same result as before.
4.3. Interface with Singular
Although our package can be used entirely in Mathematica, for difficult examples we recommend to perform the computation of the Gr¨obner basis in Singular. An input file for the calculation of the Gr¨obner basis can be gener- ated with the function WriteSingularBasisInput, which can be executed in Singular with the read() function. As an example how to use Singular with our package we return to the previous example:
In[14]:= {expr, dens, qis} = AbbreviateDenominators[(2y-x)/(y(x+y)(y-x)]
Out[14]= {-q1 q2 q3 (-x + 2y), {x - y, y, x + y}, {q1, q2, q3}}
In[15]:= ord = ApartOrder[dens, qis] Out[15]= {{q3, q1}, {q2}, {x, y}}
We can now prepare the Gr¨obner basis calculation with the command
In[16]:= WriteSingularBasisInput[dens, qis, ord, "dir"]
Here, "dir" denotes the name of the directory to which input and output files are written. The specified directory will be created if it does not exist. All commands for Singular are stored in the input file apartbasisin.sing. In Singular we can use execute(read(apartbasisin.sing)) to execute these commands. After execution, the file apartbasisout.m is created, which con- tains the Gr¨obner basis. We can load it in Mathematica:
In[17]:= Get["apartbasisout.m"]
Out[17]= {-1 + q2 y, -1 + q1 x - q1 y, -1 + q3 x + q3 y, -q1 q2 + 2 q1 q3 + q2 q3}
This is the same result as before when we used ApartBasis in the previous Section. We note that Singular provides support for polynomial reductions and can therefore also be used instead of our function ApartReduce. We observed good timings in this approach for some of our more complicated examples.
4.4. Interface with Form
We emphasize that the polynomial reduction step of our algorithm allows a straight forward implementation in symbolic manipulation programs such as Form, in which one uses identify statements to “locally” replace parts of ex- pressions, that is, one considers one term of a potentially large sum at a time. Having calculated the Gr¨obner basis, these identify statements can be derived by considering the leading term of each generator and generating rules that re- place these leading terms. We have successfully used our methods in this way and added the function WriteFormProcedure in our package. It can be invoked by
In[18]:= WriteFormProcedure[gb, ord, "dir"]
Here, gb is the Gr¨obner base from which the replacement rules are derived, ord is the monomial order that was used and "dir" is the directory where the Form procedure shall be written to. The command generates a Form input file called "apartreduce.h", containing a procedure that implements the reduction scheme described in Section 3.4, and two auxiliary files, which have to be in the same directory. For usage in Form, the file has to be included in the beginning of a Form script with "#include apartreduce.h" and the reduction algorithm can be invoked by "#call apartreduce(expr)", where expr is a local Form expression. Note that "apartreduce.h" contains the definition of the denom- inator symbols in a specific order, which is needed for an efficient reduction. The user should therefore not define these symbols at another point in his or her Form scripts. It is also possible to use Form as a back end for the computation of polyno- mial reductions in MultivariateApart , MultivariateAbbreviatedApart , and ApartReduce by specifying the option UseFormProgram -> True. For example, the command
In[19]:= ApartReduce[expr, gb, ord, UseFormProgram->True]
calls the external program Form to perform the actual computation. Here, the Form executable is assumed to be in the user’s path, and the directory $ApartTemporaryDirectory will be used for all temporary files.
5.2. Two-loop amplitudes for gg → ZZ with a closed top-quark loop
The algorithm presented in this work has also been applied to the calculation of the two-loop QCD corrections to the process
g ( p 1 ) + g ( p 2 ) → Z ( p 3 ) + Z ( p 4 ) , (30)
involving a closed top-quark loop in Ref. [24]. In that calculation,
p^21 = p^22 = 0 , p^23 = p^24 = m^2 z , ( p 1 + p 2 )^2 = s, ( p 1 − p 3 )^2 = t, (31)
was used for the kinematics and the masses of the top quark and the Z boson, mt and mz , have been fixed by mt = 1 and ( mz /mt )^2 = 5 / 18. It is possible to choose a basis of master integrals, such that the dependence on the space-time dimension d factorizes from denominators involving the kinematic invariants s and t. The coefficients contain the 9 d -dependent denominators
{ 5 d + 52 , 3 d − 10 , 3 d − 8 , 2 d − 7 , d − 5 , d − 4 , d − 3 , d − 2 , d } (32)
and the 48 d -independent denominators
{{ 2125764 t^6 + 8503056 st^5 − 5904900 t^5 + 12754584 s^2 t^4 − 35901792 st^4
104976 t^4 + 104976 st^3 + 303264 t^3 − 104976 s^2 t^2 + 29160 st^2 − 301320 t^2
− 104976 s^3 t − 244944 s^2 t + 68040 st + 88200 t + 29160 s^3 − 32400 s^2 − 23400 s − 8375 , 13122 st^3 + 37908 t^3 + 26244 s^2 t^2 + 64881 st^2 − 56700 t^2 + 13122 s^3 t
18 t + 5 , 18 t − 5 , 13 t + 10 , t − 4 , t }}. (33)
During the course of the calculation, different choices for the master integrals were used, and the original choices did in fact introduce additional denomina- tors, which mixed the dependence on d and the kinematic invariants. After changing to an improved set of master integrals, the methods presented in this paper allowed to systematically eliminate those denominators in a term-by-term approach and to very substantially reduce the size of the expressions. In order to reduce the computational complexity, the partial fraction decomposition was performed for expressions expanded around d = 4, allowing to effectively re- place d by 4 in the denominator analysis. The actual polynomial reduction was performed directly in Singular in this case. The final result for this amplitude was rather sizable. However, the partial fractioned form of the rational coefficients of the master integrals allowed to conveniently generate fast code for their numerical evaluation. Starting from a form with symbols for the inverse denominator factors, also powers of inverse denominator factors and of basic invariants were abbreviated. In this way, each coefficient becomes a sum of simple products of a few factors each, where the basic factors (the powers) can be precomputed numerically. This allows to straight-forwardly generate compiler friendly code, where each term is added to a summation variable numerically.
5.3. Two-loop amplitudes for massless five-particle scattering
For a comparison with the algorithm presented in Ref. [12], we applied our algorithm to a benchmark example considered in that work: the integration- by-parts matrix provided in Ref. [25] for the reduction of two-loop five-point functions in terms of a dlog basis. The kinematic variables are chosen as
c 2 = s 23 /s 12 , c 3 = s 34 /s 12 , c 4 = s 45 /s 12 , c 5 = s 15 /s 12 ,
where s 12 = 1 and the sij are Lorentz invariant functions of the external mo- menta. Furthermore, ǫ is the parameter of dimensional regularization. In the