Name: Vladyslav Shtabovenko (email_not_shown)
Date: 11/05/15-03:01:01 PM Z

Dear FeynCalc users,

with todays commit there is a serious change in the partial fractioning
capabilities of FeynCalc that I would like to communicate.

Traditionally, partial fractioning (in the broad sense) in FeynCalc was
done by ScalarProductCancel and Apart2. The former would try to rewrite
scalar products in the numerator such, that they can be canceled against
propagators in the denominator.
The latter would partial fraction denominators of type
1/[(q^2-m1^2)(q^2-m2^2)].

One has to admit that both functions where rather limited and slow, so
that since some time I was looking for a proper replacement for them.

In the last weeks I finally found some time to attack this problem which
resulted into adopting the partial fractioning algorithm of Feng Feng
(arXiv:1204.2314). Since Feng Feng not only published
the algorithm but also provided a Mathematica realisation of it
(https://github.com/F-Feng/APart), it was an almost trivial task to
reimplement this algorithm in FeynCalc. While Feng Feng's APart is a
general purpose partial fractioning function for multivariate
polynomials, the FeynCalc version of it works only with
FeynAmpDenominator's and Pair's. Partial fractioning of single loop
integrals is done by FCApart, while ApartFF is meant to be applied to
general expressions that contain loop integrals.

At this point I would like to stress that all the credits for this are
really to Feng Feng who has shared his algorithm and the code with the
physics community. For this reason, "ApartFF" stands for "Apart Feng
Feng" to his honour.

Anyhow, with ApartFF we now have a very powerful and fast partial
fractioning routine that not only replaces both SPC and Apart2 but also
works an arbitrary number of loop momenta. To make sure that all the
FeynCalc routines benefit from this, I replaced all the calls to SPC or
Apart2 by ApartFF. At the moment there are no FeynCalc functions
that use SPC and only one that uses Apart2 (ToTFI). Also all the options
of type "SPC -> True" or "Apart2->True" where replaced
by "ApartFF -> True". From now on SPC is considered to be deprecated. I
believe that there should be no user cases, where SPC is more useful
than ApartFF, but for compatibility reasons the former will be of course
kept as part of FeynCalc.

Apart from that, there also have been some changes to
FeynAmpDenominatorSimplify at 1-loop. I tried to improve the
identification of integrals that vanish by symmetry as well as the
heuristics for determining useful shifts.

Last but not least, we are now going to converge against a new stable
release of FeynCalc, that should come out before the
end of this year. Instead of implementing new features, I will
concentrate on stabilizing and improving all the stuff that was commited
this year and of course on fixing bugs. All your bug reports are of
course very welcome.

Cheers,