Skip to content

FCUseCache[] uses stale cache even after FCClearScalarProducts[] #151

@j824h

Description

@j824h
  • Your Mathematica version

13.0.0 for Linux x86 (64-bit) (December 3, 2021)

  • Your FeynCalc version

FeynCalc 9.3.1 (stable version). For help, use the documentation center, check out the wiki or visit the forum.

  • Did you try to reinstall FeynCalc (stable version) using the automatic installer to make sure that you have the latest bugfixes?

Yes

  • Does your Mathematica initialization file contain statements that might influence the behavior of FeynCalc? Sometimes external packages may modify `init.m` in unusual ways, causing troubles for other codes.

It is empty.


  • Please provide a minimal working example that illustrates the problem and works on a fresh kernel. The example should be provided either by writing the code (as `InputForm`!) directly in the issue text or by attaching a Mathematica notebook. Please do not post code samples as screenshots, PDF files etc.: Those essentially require us to retype everything by hand, which is annoying and also time consuming. Please explain the difference between the current behavior and the expected behavior.
SP[p1,p2]=s2;
SP[p1,p3]=s3;
DiracTrick[DiracGamma[Momentum[p2+p3]].DiracGamma[Momentum[p1]].DiracGamma[Momentum[p2+p3]]]

FCClearScalarProducts[];
DiracTrick[DiracGamma[Momentum[p2+p3]].DiracGamma[Momentum[p1]].DiracGamma[Momentum[p2+p3]]]

FCClearCache[FeynCalc`Package`FCFastContract];
DiracTrick[DiracGamma[Momentum[p2+p3]].DiracGamma[Momentum[p1]].DiracGamma[Momentum[p2+p3]]]

After clearing the scalar products (2nd output), I would expect the evaluation should be free of the Pair DownValues s2 or s3.
However, it seems I get the same result as the 1st output, not free of s2 and s3.
Only after manually calling FCClearCache[FeynCalc`Package`FCFastContract], I get the fresh result I expect. (3rd output)

As documented in the definition of FCUseCache[], FCUseCache[] should know that Pair[] DownValues were cleared, but apparently that is not happening, causing DiracTrick[] to give the unexpected result.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions