magv / alibrary

Amplitude library: gluing all the tools needed for computing multi-loop amplitudes in QCD and beyond
https://magv.github.io/alibrary/
15 stars 2 forks source link

Partial fraction decomposition #3

Open vsht opened 1 year ago

vsht commented 1 year ago

Hi Vitaly,

I'm just wondering what would be the alibrary-solution for cases when the basis of propagators is overcomplete and one needs to partial fraction the occurring denominators before setting up the reduction?

Is there perhaps a built-in interface to sth off-the-shelf ($Apart, MultivariateApart, ...)?

magv commented 1 year ago

There is PartialFraction[], which is Leinartas' algorithm.

I haven't used it in a while though, not sure how well it works at the moment. If you want to test, this can be useful :)

I think we'll be needing this function in the next few months, so I think I should add a few tests for it, and move it out of library.m into alibrary.m. TODO.

vsht commented 1 year ago

Many thanks, we will definitely test it! The idea is really to have a second code fully independent of FeynCalc, so anything that helps is very welcome.

Just a short question: Can PartialFraction[] consistently deal with different signs in linear propagators, like distinguishing between "+k.n" and "-k.n"?

Since the former means $k \cdot n + i \varepsilon$ and the latter stands for $-k \cdot n + i \varepsilon$, one cannot just pull out -1 from "-k.n". Doing so will generate $k \cdot n - i \varepsilon \neq k \cdot n + i \varepsilon$ and obviously mess up the imaginary part of the integral.

magv commented 1 year ago

PartialFraction[] works on products of den[]s, and den[p,m2] is p^2-m2, so no, linear propagators are not included. They could be, I guess. What notation for these things are you using?

dehorstmann commented 1 year ago

We use denP[x,p] = x^-p

vsht commented 1 year ago

PartialFraction[] works on products of den[]s, and den[p,m2] is p^2-m2, so no, linear propagators are not included. They could be, I guess. What notation for these things are you using?

I guess one could introduce something like den[sp[a,a]+sp[a,b]+..., m2] to have a more universal input format.