From ccb1a9a98fb5fec08ca4901afa1cb4486d0ea1c0 Mon Sep 17 00:00:00 2001 From: Vladyslav Shtabovenko Date: Thu, 8 Aug 2024 17:35:49 +0200 Subject: [PATCH] Manual updated. --- img/189bbth1nyc1e.pdf | Bin 0 -> 48218 bytes includes.tex | 1 + pages/FCLoopFindMomentumShifts.tex | 119 ++++++++++- pages/FCLoopFindTopologyMappings.tex | 51 ++--- ...LoopReplaceQuadraticEikonalPropagators.tex | 68 +++++++ pages/FeynCalc.tex | 4 + pages/FromGFAD.tex | 186 +++++++++++++----- pages/MomentumCombine.tex | 95 ++++++++- pages/ToGFAD.tex | 30 ++- 9 files changed, 476 insertions(+), 78 deletions(-) create mode 100644 img/189bbth1nyc1e.pdf create mode 100644 pages/FCLoopReplaceQuadraticEikonalPropagators.tex diff --git a/img/189bbth1nyc1e.pdf b/img/189bbth1nyc1e.pdf new file mode 100644 index 0000000000000000000000000000000000000000..91658280f7d2e6e9c5d5a2eb7915d528244cbd92 GIT binary patch literal 48218 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 literal 0 HcmV?d00001 diff --git a/includes.tex b/includes.tex index a912874..7b7203d 100644 --- a/includes.tex +++ b/includes.tex @@ -559,6 +559,7 @@ \chapter{Loop integrals} \subfile{pages/FCLoopPropagatorPowersExpand.tex} \subfile{pages/FCLoopPropagatorsToTopology.tex} \subfile{pages/FCLoopRemovePropagator.tex} +\subfile{pages/FCLoopReplaceQuadraticEikonalPropagators.tex} \subfile{pages/FCLoopSamePropagatorHeadsQ.tex} \subfile{pages/FCLoopRemoveNegativePropagatorPowers.tex} \subfile{pages/FCLoopSelectTopology.tex} diff --git a/pages/FCLoopFindMomentumShifts.tex b/pages/FCLoopFindMomentumShifts.tex index 4da4c97..b39a615 100644 --- a/pages/FCLoopFindMomentumShifts.tex +++ b/pages/FCLoopFindMomentumShifts.tex @@ -3,6 +3,9 @@ \documentclass[../FeynCalcManual.tex]{subfiles} \begin{document} +\hypertarget{fcloopfindmomentumshifts}{ +\section{FCLoopFindMomentumShifts}\label{fcloopfindmomentumshifts}\index{FCLoopFindMomentumShifts}} + \texttt{FCLoopFindMomentumShifts[\allowbreak{}source,\ \allowbreak{}target,\ \allowbreak{}\{\allowbreak{}p1,\ \allowbreak{}p2,\ \allowbreak{}...\}]} finds loop momentum shifts that bring loop integrals or topologies in the list \texttt{source} to the form specified in target. The @@ -22,7 +25,9 @@ For topologies involving kinematic constraints some mappings may require shifts not only in the loop but also in the external momenta. Such shifts are disabled by default but can be activated by setting the -option \texttt{Momentum} to \texttt{All}. +option \texttt{Momentum} to \texttt{All}. This option can be dangerous, +because the amplitude does not necessarily have to be symmetric under +shifts of external momenta! Normally, \texttt{FCLoopFindMomentumShifts} will abort the evaluation if it fails to find any suitable shifts. Setting the option \texttt{Abort} @@ -71,7 +76,7 @@ \subsection{Examples} \end{Shaded} \begin{dmath*}\breakingcomma -\{\{\text{p1}\to \;\text{p1}+\text{p4}+\text{q1},\text{p3}\to \;\text{p3},\text{p4}\to \;\text{p4}\}\} +\{\{\text{p1}\to \;\text{p1}+\text{p4}+\text{q1}\}\} \end{dmath*} \begin{Shaded} @@ -84,7 +89,7 @@ \subsection{Examples} \end{Shaded} \begin{dmath*}\breakingcomma -\{\{\text{p3}\to \;\text{p3},\text{r4}\to \;\text{p4},\text{r1}\to \;\text{p1}+\text{p4}+\text{q1}\}\} +\{\{\text{r4}\to \;\text{p4},\text{r1}\to \;\text{p1}+\text{p4}+\text{q1}\}\} \end{dmath*} \begin{Shaded} @@ -137,7 +142,7 @@ \subsection{Examples} \end{Shaded} \begin{dmath*}\breakingcomma -\{\{\text{p1}\to -\text{p1}-\text{p3}+Q,\text{p2}\to -\text{p2}-\text{p3}+Q,\text{p3}\to \;\text{p3}\},\{\text{p1}\to Q-\text{p2},\text{p2}\to Q-\text{p1},\text{p3}\to -\text{p3}\}\} +\{\{\text{p1}\to -\text{p1}-\text{p3}+Q,\text{p2}\to -\text{p2}-\text{p3}+Q\},\{\text{p1}\to Q-\text{p2},\text{p2}\to Q-\text{p1},\text{p3}\to -\text{p3}\}\} \end{dmath*} \begin{Shaded} @@ -181,6 +186,10 @@ \subsection{Examples} \end{Highlighting} \end{Shaded} +\begin{dmath*}\breakingcomma +\text{FCLoopFindMomentumShifts: }\;\text{Failed to derive the momentum shifts between topologies topo1 and topo2. This can be due to the presence of nonquadratic propagators or because shifts in external momenta are also necessary.} +\end{dmath*} + \begin{dmath*}\breakingcomma \{\{\}\} \end{dmath*} @@ -194,6 +203,106 @@ \subsection{Examples} \end{Shaded} \begin{dmath*}\breakingcomma -\{\{\text{l1}\to \;\text{l1}-\text{l2}-\text{q2},\text{l2}\to -\text{l2},\text{q1}\to \;\text{q2},\text{q2}\to \;\text{q1}\}\} +\{\{\text{l1}\to -\text{l1}+\text{l2}+\text{q2},\text{q1}\to -\text{q2},\text{q2}\to -\text{q1}\}\} +\end{dmath*} + +For equivalent topologies containing mixed quadratic-eikonal propagators +it's often not possible to find suitable shifts because the function +cannot reconstruct the correct momentum flow through such propagators + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{source3 }\ExtensionTok{=} \OperatorTok{\{}\NormalTok{FCTopology}\OperatorTok{[}\StringTok{"pfrTopo303"}\OperatorTok{,} \OperatorTok{\{}\NormalTok{SFAD}\OperatorTok{[\{\{}\NormalTok{k2}\OperatorTok{,} \SpecialCharTok{{-}}\DecValTok{2}\NormalTok{ gkin meta k2 . }\FunctionTok{n} \SpecialCharTok{+}\NormalTok{ meta u0b k2 . nb}\OperatorTok{\},} + \OperatorTok{\{}\DecValTok{2}\NormalTok{ gkin meta}\SpecialCharTok{\^{}}\DecValTok{2}\NormalTok{ u0b}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],}\NormalTok{ SFAD}\OperatorTok{[\{\{}\NormalTok{k1 }\SpecialCharTok{{-}}\NormalTok{ k2}\OperatorTok{,}\NormalTok{ meta u0b (}\SpecialCharTok{{-}}\NormalTok{k1 }\SpecialCharTok{+}\NormalTok{ k2) . nb}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{0}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],} +\NormalTok{ SFAD}\OperatorTok{[\{\{}\NormalTok{k1}\OperatorTok{,} \SpecialCharTok{{-}}\DecValTok{2}\NormalTok{ gkin meta k1 . }\FunctionTok{n}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{0}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],}\NormalTok{ SFAD}\OperatorTok{[\{\{}\NormalTok{k1}\OperatorTok{,} \SpecialCharTok{{-}}\NormalTok{meta u0b k1 . nb}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{0}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],} +\NormalTok{ SFAD}\OperatorTok{[\{\{}\DecValTok{0}\OperatorTok{,} \SpecialCharTok{{-}}\NormalTok{k2 . nb}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{0}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],}\NormalTok{ SFAD}\OperatorTok{[\{\{}\DecValTok{0}\OperatorTok{,} \SpecialCharTok{{-}}\NormalTok{k1 . nb}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{0}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]\},} \OperatorTok{\{}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{\},} \OperatorTok{\{}\FunctionTok{n}\OperatorTok{,}\NormalTok{ nb}\OperatorTok{\},} + \OperatorTok{\{}\FunctionTok{Hold}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{][}\FunctionTok{n}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,} \FunctionTok{Hold}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{][}\NormalTok{nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,} \FunctionTok{Hold}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{][}\FunctionTok{n}\OperatorTok{,}\NormalTok{ nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{2}\OperatorTok{\},} \OperatorTok{\{\}]\}} +\end{Highlighting} +\end{Shaded} + +\begin{dmath*}\breakingcomma +\left\{\text{FCTopology}\left(\text{pfrTopo303},\left\{\frac{1}{(\text{k2}^2+\text{meta} \;\text{u0b} (\text{k2}\cdot \;\text{nb})-2 \;\text{gkin} \;\text{meta} (\text{k2}\cdot n)-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}+i \eta )},\frac{1}{((\text{k1}-\text{k2})^2+\text{meta} \;\text{u0b} ((\text{k2}-\text{k1})\cdot \;\text{nb})+i \eta )},\frac{1}{(\text{k1}^2-2 \;\text{gkin} \;\text{meta} (\text{k1}\cdot n)+i \eta )},\frac{1}{(\text{k1}^2-\text{meta} \;\text{u0b} (\text{k1}\cdot \;\text{nb})+i \eta )},\frac{1}{(-\text{k2}\cdot \;\text{nb}+i \eta )},\frac{1}{(-\text{k1}\cdot \;\text{nb}+i \eta )}\right\},\{\text{k1},\text{k2}\},\{n,\text{nb}\},\{\text{Hold}[\text{SPD}][n]\to 0,\text{Hold}[\text{SPD}][\text{nb}]\to 0,\text{Hold}[\text{SPD}][n,\text{nb}]\to 2\},\{\}\right)\right\} +\end{dmath*} + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{target3 }\ExtensionTok{=}\NormalTok{ FCTopology}\OperatorTok{[}\StringTok{"pfrTopo267"}\OperatorTok{,} \OperatorTok{\{}\NormalTok{SFAD}\OperatorTok{[\{\{}\NormalTok{k2}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{0}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],}\NormalTok{ SFAD}\OperatorTok{[\{\{}\NormalTok{k1 }\SpecialCharTok{{-}}\NormalTok{ k2}\OperatorTok{,} \DecValTok{2}\NormalTok{ gkin meta k1 . }\FunctionTok{n} \SpecialCharTok{{-}} \DecValTok{2}\NormalTok{ gkin meta u0b k1 . }\FunctionTok{n} \SpecialCharTok{{-}} \DecValTok{2}\NormalTok{ gkin meta k2 . }\FunctionTok{n} \SpecialCharTok{+} \DecValTok{2}\NormalTok{ gkin meta u0b k2 . }\FunctionTok{n} \SpecialCharTok{+}\NormalTok{ meta u0b (}\SpecialCharTok{{-}}\NormalTok{k1 }\SpecialCharTok{+}\NormalTok{ k2) . nb}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{2}\NormalTok{ gkin meta}\SpecialCharTok{\^{}}\DecValTok{2}\NormalTok{ u0b }\SpecialCharTok{{-}} \DecValTok{2}\NormalTok{ gkin meta}\SpecialCharTok{\^{}}\DecValTok{2}\NormalTok{ u0b}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],}\NormalTok{ SFAD}\OperatorTok{[\{\{}\NormalTok{k1}\OperatorTok{,} \DecValTok{2}\NormalTok{ gkin meta k1 . }\FunctionTok{n} \SpecialCharTok{{-}} \DecValTok{2}\NormalTok{ gkin meta u0b k1 . }\FunctionTok{n} \SpecialCharTok{{-}}\NormalTok{ meta u0b k1 . nb}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{2}\NormalTok{ gkin meta}\SpecialCharTok{\^{}}\DecValTok{2}\NormalTok{ u0b }\SpecialCharTok{{-}} \DecValTok{2}\NormalTok{ gkin meta}\SpecialCharTok{\^{}}\DecValTok{2}\NormalTok{ u0b}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],}\NormalTok{ SFAD}\OperatorTok{[\{\{}\NormalTok{k1}\OperatorTok{,} \SpecialCharTok{{-}}\DecValTok{2}\NormalTok{ gkin meta u0b k1 . }\FunctionTok{n}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{0}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],}\NormalTok{ SFAD}\OperatorTok{[\{\{}\DecValTok{0}\OperatorTok{,}\NormalTok{ k2 . nb}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{2}\NormalTok{ gkin meta}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],}\NormalTok{ SFAD}\OperatorTok{[\{\{}\DecValTok{0}\OperatorTok{,}\NormalTok{ k1 . nb}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{2}\NormalTok{ gkin meta u0b}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]\},} \OperatorTok{\{}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{\},} \OperatorTok{\{}\FunctionTok{n}\OperatorTok{,}\NormalTok{ nb}\OperatorTok{\},} \OperatorTok{\{}\FunctionTok{Hold}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{][}\FunctionTok{n}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,} \FunctionTok{Hold}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{][}\NormalTok{nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,} \FunctionTok{Hold}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{][}\FunctionTok{n}\OperatorTok{,}\NormalTok{ nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{2}\OperatorTok{\},} \OperatorTok{\{\}]} +\end{Highlighting} +\end{Shaded} + +\begin{dmath*}\breakingcomma +\text{FCTopology}\left(\text{pfrTopo267},\left\{\frac{1}{(\text{k2}^2+i \eta )},1\left/\left(((\text{k1}-\text{k2})^2+2 \;\text{gkin} \;\text{meta} (\text{k1}\cdot n)-2 \;\text{gkin} \;\text{meta} \;\text{u0b} (\text{k1}\cdot n)-2 \;\text{gkin} \;\text{meta} (\text{k2}\cdot n)+2 \;\text{gkin} \;\text{meta} \;\text{u0b} (\text{k2}\cdot n)+\text{meta} \;\text{u0b} ((\text{k2}-\text{k1})\cdot \;\text{nb})+2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}^2-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}+i \eta )\right)\right.,\frac{1}{(\text{k1}^2+2 \;\text{gkin} \;\text{meta} (\text{k1}\cdot n)-2 \;\text{gkin} \;\text{meta} \;\text{u0b} (\text{k1}\cdot n)-\text{meta} \;\text{u0b} (\text{k1}\cdot \;\text{nb})+2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}^2-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}+i \eta )},\frac{1}{(\text{k1}^2-2 \;\text{gkin} \;\text{meta} \;\text{u0b} (\text{k1}\cdot n)+i \eta )},\frac{1}{(\text{k2}\cdot \;\text{nb}-2 \;\text{gkin} \;\text{meta}+i \eta )},\frac{1}{(\text{k1}\cdot \;\text{nb}-2 \;\text{gkin} \;\text{meta} \;\text{u0b}+i \eta )}\right\},\{\text{k1},\text{k2}\},\{n,\text{nb}\},\{\text{Hold}[\text{SPD}][n]\to 0,\text{Hold}[\text{SPD}][\text{nb}]\to 0,\text{Hold}[\text{SPD}][n,\text{nb}]\to 2\},\{\}\right) +\end{dmath*} + +\begin{dmath*}\breakingcomma +(\text{DataType}[\#,\text{FCVariable}]=\text{True})\&\text{/@}\{\text{gkin},\text{meta},\text{u0b}\}; +\end{dmath*} + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{FCLoopFindMomentumShifts}\OperatorTok{[}\NormalTok{source3}\OperatorTok{,}\NormalTok{ target3}\OperatorTok{]} +\end{Highlighting} +\end{Shaded} + +\begin{dmath*}\breakingcomma +\text{FCLoopFindMomentumShifts: }\;\text{The topologies contain following mixed quadratic-eikonal propagators that complicate the determination of the shifts: }\left\{\frac{1}{(\text{k1}^2-2 \;\text{gkin} \;\text{meta} (\text{k1}\cdot n)+i \eta )},\frac{1}{(\text{k1}^2-2 \;\text{gkin} \;\text{meta} \;\text{u0b} (\text{k1}\cdot n)+i \eta )},\frac{1}{(\text{k1}^2-\text{meta} \;\text{u0b} (\text{k1}\cdot \;\text{nb})+i \eta )},\frac{1}{(\text{k1}^2+n\cdot (2 \;\text{gkin} \;\text{meta} \;\text{k1}-2 \;\text{gkin} \;\text{meta} \;\text{u0b} \;\text{k1})-\text{meta} \;\text{u0b} (\text{k1}\cdot \;\text{nb})+2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}^2-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}+i \eta )},\frac{1}{((\text{k1}-\text{k2})^2+\text{meta} \;\text{u0b} ((\text{k2}-\text{k1})\cdot \;\text{nb})+i \eta )},\frac{1}{((\text{k1}-\text{k2})^2+\text{meta} \;\text{u0b} ((\text{k2}-\text{k1})\cdot \;\text{nb})+n\cdot (2 \;\text{gkin} \;\text{meta} \;\text{k1}-2 \;\text{gkin} \;\text{meta} \;\text{u0b} \;\text{k1}-2 \;\text{gkin} \;\text{meta} \;\text{k2}+2 \;\text{gkin} \;\text{meta} \;\text{u0b} \;\text{k2})+2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}^2-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}+i \eta )},\frac{1}{(\text{k2}^2+\text{k2}\cdot (\text{meta} \;\text{u0b} \;\text{nb}-2 \;\text{gkin} \;\text{meta} n)-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}+i \eta )}\right\} +\end{dmath*} + +\begin{dmath*}\breakingcomma +\text{FCLoopFindMomentumShifts: }\;\text{You can try to trade them for purely quadratic propagators using FCLoopReplaceQuadraticEikonalPropagators.} +\end{dmath*} + +\FloatBarrier +\begin{figure}[!ht] +\centering +\includegraphics[width=0.6\linewidth]{img/189bbth1nyc1e.pdf} +\end{figure} +\FloatBarrier + +\begin{dmath*}\breakingcomma +\text{FCLoopFindMomentumShifts: }\;\text{Failed to derive the momentum shifts between topologies pfrTopo303 and pfrTopo267. This can be due to the presence of nonquadratic propagators or because shifts in external momenta are also necessary.} +\end{dmath*} + +\begin{dmath*}\breakingcomma +\text{\$Aborted} +\end{dmath*} + +To this aim one can try converting those mixed propagators to purely +quadratic ones using \texttt{FCLoopReplaceQuadraticEikonalPropagators} + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{source3New }\ExtensionTok{=}\NormalTok{ FCLoopReplaceQuadraticEikonalPropagators}\OperatorTok{[}\NormalTok{source3}\OperatorTok{,}\NormalTok{ LoopMomenta }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{\},} +\NormalTok{ InitialSubstitutions }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{ExpandScalarProduct}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{{-}}\NormalTok{ k2}\OperatorTok{]]} \OtherTok{{-}\textgreater{}}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{{-}}\NormalTok{ k2}\OperatorTok{]\},} +\NormalTok{ IntermediateSubstitutions }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{SPD}\OperatorTok{[}\FunctionTok{n}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,}\NormalTok{ SPD}\OperatorTok{[}\FunctionTok{n}\OperatorTok{,}\NormalTok{ nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{2}\OperatorTok{\}]} +\end{Highlighting} +\end{Shaded} + +\begin{dmath*}\breakingcomma +\left\{\text{FCTopology}\left(\text{pfrTopo303},\left\{\frac{1}{((\text{k2}-\text{gkin} \;\text{meta} n+\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2+i \eta )},\frac{1}{((\text{k1}-\text{k2}-\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2+i \eta )},\frac{1}{((\text{k1}-\text{gkin} \;\text{meta} n)^2+i \eta )},\frac{1}{((\text{k1}-\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2+i \eta )},\frac{1}{(-\text{k2}\cdot \;\text{nb}+i \eta )},\frac{1}{(-\text{k1}\cdot \;\text{nb}+i \eta )}\right\},\{\text{k1},\text{k2}\},\{n,\text{nb}\},\{\text{Hold}[\text{SPD}][n]\to 0,\text{Hold}[\text{SPD}][\text{nb}]\to 0,\text{Hold}[\text{SPD}][n,\text{nb}]\to 2\},\{\}\right)\right\} +\end{dmath*} + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{target3New }\ExtensionTok{=}\NormalTok{ FCLoopReplaceQuadraticEikonalPropagators}\OperatorTok{[}\NormalTok{target3}\OperatorTok{,}\NormalTok{ LoopMomenta }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{\},} +\NormalTok{ InitialSubstitutions }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{ExpandScalarProduct}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{{-}}\NormalTok{ k2}\OperatorTok{]]} \OtherTok{{-}\textgreater{}}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{{-}}\NormalTok{ k2}\OperatorTok{]\},} +\NormalTok{ IntermediateSubstitutions }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{SPD}\OperatorTok{[}\FunctionTok{n}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,}\NormalTok{ SPD}\OperatorTok{[}\FunctionTok{n}\OperatorTok{,}\NormalTok{ nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{2}\OperatorTok{\}]} \SpecialCharTok{//} \FunctionTok{First} +\end{Highlighting} +\end{Shaded} + +\begin{dmath*}\breakingcomma +\text{FCTopology}\left(\text{pfrTopo267},\left\{\frac{1}{(\text{k2}^2+i \eta )},\frac{1}{((\text{k1}-\text{k2}+\text{gkin} \;\text{meta} n-\text{gkin} \;\text{meta} \;\text{u0b} n-\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2+i \eta )},\frac{1}{((\text{k1}+\text{gkin} \;\text{meta} n-\text{gkin} \;\text{meta} \;\text{u0b} n-\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2+i \eta )},\frac{1}{((\text{k1}-\text{gkin} \;\text{meta} \;\text{u0b} n)^2+i \eta )},\frac{1}{(\text{k2}\cdot \;\text{nb}-2 \;\text{gkin} \;\text{meta}+i \eta )},\frac{1}{(\text{k1}\cdot \;\text{nb}-2 \;\text{gkin} \;\text{meta} \;\text{u0b}+i \eta )}\right\},\{\text{k1},\text{k2}\},\{n,\text{nb}\},\{\text{Hold}[\text{SPD}][n]\to 0,\text{Hold}[\text{SPD}][\text{nb}]\to 0,\text{Hold}[\text{SPD}][n,\text{nb}]\to 2\},\{\}\right) +\end{dmath*} + +With the new topologies everything works as expected + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{FCLoopFindMomentumShifts}\OperatorTok{[}\NormalTok{source3New}\OperatorTok{,}\NormalTok{ target3New}\OperatorTok{]} +\end{Highlighting} +\end{Shaded} + +\begin{dmath*}\breakingcomma +\left\{\left\{\text{k1}\to \;\text{gkin} \;\text{meta} n \;\text{u0b}-\text{k1}+\frac{\text{meta} \;\text{nb} \;\text{u0b}}{2},\text{k2}\to \frac{1}{2} (2 \;\text{gkin} \;\text{meta} n-2 \;\text{k2}-\text{meta} \;\text{nb} \;\text{u0b})\right\}\right\} \end{dmath*} \end{document} diff --git a/pages/FCLoopFindTopologyMappings.tex b/pages/FCLoopFindTopologyMappings.tex index 2ae3211..fe2b046 100644 --- a/pages/FCLoopFindTopologyMappings.tex +++ b/pages/FCLoopFindTopologyMappings.tex @@ -89,9 +89,9 @@ \subsection{Examples} \begin{dmath*}\breakingcomma \left( \begin{array}{ccc} - \;\text{FCTopology}\left(\text{fctopology3},\left\{\frac{1}{(\text{p3}^2+i \eta )},\frac{1}{(\text{p2}^2+i \eta )},\frac{1}{(\text{p1}^2+i \eta )},\frac{1}{((\text{p2}+\text{p3})^2+i \eta )},\frac{1}{((\text{p1}+\text{p3})^2+i \eta )},\frac{1}{((\text{p2}-Q)^2+i \eta )},\frac{1}{((\text{p2}+\text{p3}-Q)^2+i \eta )},\frac{1}{((\text{p1}+\text{p3}-Q)^2+i \eta )},\frac{1}{((\text{p1}+\text{p2}+\text{p3}-Q)^2+i \eta )}\right\},\{\text{p1},\text{p2},\text{p3}\},\{Q\},\{\},\{\}\right) & \{\text{p1}\to -\text{p1}-\text{p3}+Q,\text{p2}\to -\text{p2}-\text{p3}+Q,\text{p3}\to \;\text{p3}\} & G^{\text{fctopology3}}(\text{n1$\_$},\text{n7$\_$},\text{n8$\_$},\text{n5$\_$},\text{n6$\_$},\text{n4$\_$},\text{n2$\_$},\text{n3$\_$},\text{n9$\_$}):\to G^{\text{fctopology1}}(\text{n1},\text{n2},\text{n3},\text{n4},\text{n5},\text{n6},\text{n7},\text{n8},\text{n9}) \\ + \;\text{FCTopology}\left(\text{fctopology3},\left\{\frac{1}{(\text{p3}^2+i \eta )},\frac{1}{(\text{p2}^2+i \eta )},\frac{1}{(\text{p1}^2+i \eta )},\frac{1}{((\text{p2}+\text{p3})^2+i \eta )},\frac{1}{((\text{p1}+\text{p3})^2+i \eta )},\frac{1}{((\text{p2}-Q)^2+i \eta )},\frac{1}{((\text{p2}+\text{p3}-Q)^2+i \eta )},\frac{1}{((\text{p1}+\text{p3}-Q)^2+i \eta )},\frac{1}{((\text{p1}+\text{p2}+\text{p3}-Q)^2+i \eta )}\right\},\{\text{p1},\text{p2},\text{p3}\},\{Q\},\{\},\{\}\right) & \{\text{p1}\to -\text{p1}-\text{p3}+Q,\text{p2}\to -\text{p2}-\text{p3}+Q\} & G^{\text{fctopology3}}(\text{n1$\_$},\text{n7$\_$},\text{n8$\_$},\text{n5$\_$},\text{n6$\_$},\text{n4$\_$},\text{n2$\_$},\text{n3$\_$},\text{n9$\_$}):\to G^{\text{fctopology1}}(\text{n1},\text{n2},\text{n3},\text{n4},\text{n5},\text{n6},\text{n7},\text{n8},\text{n9}) \\ \;\text{FCTopology}\left(\text{fctopology4},\left\{\frac{1}{(\text{p3}^2+i \eta )},\frac{1}{(\text{p2}^2+i \eta )},\frac{1}{(\text{p1}^2+i \eta )},\frac{1}{((\text{p2}+\text{p3})^2+i \eta )},\frac{1}{((\text{p1}+\text{p3})^2+i \eta )},\frac{1}{((\text{p2}-Q)^2+i \eta )},\frac{1}{((\text{p1}-Q)^2+i \eta )},\frac{1}{((\text{p1}+\text{p3}-Q)^2+i \eta )},\frac{1}{((\text{p1}+\text{p2}+\text{p3}-Q)^2+i \eta )}\right\},\{\text{p1},\text{p2},\text{p3}\},\{Q\},\{\},\{\}\right) & \{\text{p1}\to Q-\text{p2},\text{p2}\to Q-\text{p1},\text{p3}\to -\text{p3}\} & G^{\text{fctopology4}}(\text{n1$\_$},\text{n6$\_$},\text{n5$\_$},\text{n8$\_$},\text{n7$\_$},\text{n3$\_$},\text{n2$\_$},\text{n4$\_$},\text{n9$\_$}):\to G^{\text{fctopology1}}(\text{n1},\text{n2},\text{n3},\text{n4},\text{n5},\text{n6},\text{n7},\text{n8},\text{n9}) \\ - \;\text{FCTopology}\left(\text{fctopology5},\left\{\frac{1}{(\text{p3}^2+i \eta )},\frac{1}{(\text{p2}^2+i \eta )},\frac{1}{(\text{p1}^2+i \eta )},\frac{1}{((\text{p1}+\text{p3})^2+i \eta )},\frac{1}{((\text{p2}-Q)^2+i \eta )},\frac{1}{((\text{p1}-Q)^2+i \eta )},\frac{1}{((\text{p1}+\text{p3}-Q)^2+i \eta )},\frac{1}{((\text{p1}+\text{p2}-Q)^2+i \eta )},\frac{1}{((\text{p1}+\text{p2}+\text{p3}-Q)^2+i \eta )}\right\},\{\text{p1},\text{p2},\text{p3}\},\{Q\},\{\},\{\}\right) & \{\text{p1}\to \;\text{p2},\text{p2}\to \;\text{p1},\text{p3}\to \;\text{p3}\} & G^{\text{fctopology5}}(\text{n1$\_$},\text{n3$\_$},\text{n2$\_$},\text{n4$\_$},\text{n6$\_$},\text{n5$\_$},\text{n7$\_$},\text{n8$\_$},\text{n9$\_$}):\to G^{\text{fctopology2}}(\text{n1},\text{n2},\text{n3},\text{n4},\text{n5},\text{n6},\text{n7},\text{n8},\text{n9}) \\ + \;\text{FCTopology}\left(\text{fctopology5},\left\{\frac{1}{(\text{p3}^2+i \eta )},\frac{1}{(\text{p2}^2+i \eta )},\frac{1}{(\text{p1}^2+i \eta )},\frac{1}{((\text{p1}+\text{p3})^2+i \eta )},\frac{1}{((\text{p2}-Q)^2+i \eta )},\frac{1}{((\text{p1}-Q)^2+i \eta )},\frac{1}{((\text{p1}+\text{p3}-Q)^2+i \eta )},\frac{1}{((\text{p1}+\text{p2}-Q)^2+i \eta )},\frac{1}{((\text{p1}+\text{p2}+\text{p3}-Q)^2+i \eta )}\right\},\{\text{p1},\text{p2},\text{p3}\},\{Q\},\{\},\{\}\right) & \{\text{p1}\to \;\text{p2},\text{p2}\to \;\text{p1}\} & G^{\text{fctopology5}}(\text{n1$\_$},\text{n3$\_$},\text{n2$\_$},\text{n4$\_$},\text{n6$\_$},\text{n5$\_$},\text{n7$\_$},\text{n8$\_$},\text{n9$\_$}):\to G^{\text{fctopology2}}(\text{n1},\text{n2},\text{n3},\text{n4},\text{n5},\text{n6},\text{n7},\text{n8},\text{n9}) \\ \end{array} \right) \end{dmath*} @@ -320,7 +320,7 @@ \subsection{Examples} \begin{dmath*}\breakingcomma \left( \begin{array}{ccc} - \;\text{FCTopology}\left(\text{topo2},\left\{\frac{1}{((\text{l1}-\text{l2})^2-m^2+i \eta )},\frac{1}{((\text{l1}-\text{q2})^2+i \eta )},\frac{1}{((\text{l2}-\text{q2})^2-m^2+i \eta )},\frac{1}{((\text{l2}+\text{q1})^2-m^2+i \eta )},\frac{1}{(\text{l2}^2+i \eta )}\right\},\{\text{l1},\text{l2}\},\{\text{q1},\text{q2}\},\left\{\text{q1}^2\to 0,\text{q2}^2\to 0,\text{q1}\cdot \;\text{q2}\to \frac{s}{2}\right\},\{\}\right) & \{\text{l1}\to -\text{l1}+\text{l2}-\text{q1},\text{l2}\to \;\text{l2},\text{q1}\to -\text{q2},\text{q2}\to -\text{q1}\} & G^{\text{topo2}}(\text{n1$\_$},\text{n2$\_$},\text{n3$\_$},\text{n4$\_$},\text{n5$\_$}):\to G^{\text{topo1}}(\text{n1},\text{n2},\text{n3},\text{n4},\text{n5}) \\ + \;\text{FCTopology}\left(\text{topo2},\left\{\frac{1}{((\text{l1}-\text{l2})^2-m^2+i \eta )},\frac{1}{((\text{l1}-\text{q2})^2+i \eta )},\frac{1}{((\text{l2}-\text{q2})^2-m^2+i \eta )},\frac{1}{((\text{l2}+\text{q1})^2-m^2+i \eta )},\frac{1}{(\text{l2}^2+i \eta )}\right\},\{\text{l1},\text{l2}\},\{\text{q1},\text{q2}\},\left\{\text{q1}^2\to 0,\text{q2}^2\to 0,\text{q1}\cdot \;\text{q2}\to \frac{s}{2}\right\},\{\}\right) & \{\text{l1}\to -\text{l1}+\text{l2}-\text{q1},\text{q1}\to -\text{q2},\text{q2}\to -\text{q1}\} & G^{\text{topo2}}(\text{n1$\_$},\text{n2$\_$},\text{n3$\_$},\text{n4$\_$},\text{n5$\_$}):\to G^{\text{topo1}}(\text{n1},\text{n2},\text{n3},\text{n4},\text{n5}) \\ \end{array} \right) \end{dmath*} @@ -333,6 +333,10 @@ \subsection{Examples} \end{Highlighting} \end{Shaded} +\begin{dmath*}\breakingcomma +\text{FCLoopFindMomentumShifts: }\;\text{Failed to derive the momentum shifts between topologies topo2 and topo1. This can be due to the presence of nonquadratic propagators or because shifts in external momenta are also necessary.} +\end{dmath*} + \begin{dmath*}\breakingcomma \text{FCLoopFindTopologyMappings: }\;\text{Found }0\text{ mapping relations } \end{dmath*} @@ -374,6 +378,7 @@ \subsection{Examples} \begin{Shaded} \begin{Highlighting}[] +\NormalTok{DataType}\OperatorTok{[}\NormalTok{gkin}\OperatorTok{,}\NormalTok{ FCVariable}\OperatorTok{]} \ExtensionTok{=} \ConstantTok{True}\NormalTok{;} \NormalTok{DataType}\OperatorTok{[}\NormalTok{meta}\OperatorTok{,}\NormalTok{ FCVariable}\OperatorTok{]} \ExtensionTok{=} \ConstantTok{True}\NormalTok{;} \NormalTok{DataType}\OperatorTok{[}\NormalTok{u0b}\OperatorTok{,}\NormalTok{ FCVariable}\OperatorTok{]} \ExtensionTok{=} \ConstantTok{True}\NormalTok{;} \end{Highlighting} @@ -387,6 +392,18 @@ \subsection{Examples} \end{Highlighting} \end{Shaded} +\begin{dmath*}\breakingcomma +\text{FCLoopFindMomentumShifts: }\;\text{The topologies contain following mixed quadratic-eikonal propagators that complicate the determination of the shifts: }\left\{\frac{1}{(\text{k1}^2+\text{k1}\cdot (2 \;\text{gkin} \;\text{meta} n-\text{meta} \;\text{u0b} \;\text{nb})-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}+i \eta )},\frac{1}{(\text{k1}^2+\text{k1}\cdot (\text{meta} \;\text{u0b} \;\text{nb}-2 \;\text{gkin} \;\text{meta} n)-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}+i \eta )},\frac{1}{(\text{k2}^2-\text{meta} \;\text{u0b} (\text{k2}\cdot \;\text{nb})+i \eta )},\frac{1}{((\text{k1}+\text{k2})^2-2 \;\text{gkin} \;\text{meta} \;\text{u0b} ((\text{k1}+\text{k2})\cdot n)+i \eta )},\frac{1}{((\text{k1}+\text{k2})^2-\text{meta} \;\text{u0b} ((\text{k1}+\text{k2})\cdot \;\text{nb})+i \eta )},\frac{1}{((\text{k1}+\text{k2})^2+(\text{k1}+\text{k2})\cdot (2 \;\text{gkin} \;\text{meta} \;\text{u0b} n-\text{meta} \;\text{u0b} \;\text{nb})-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}^2+i \eta )}\right\} +\end{dmath*} + +\begin{dmath*}\breakingcomma +\text{FCLoopFindMomentumShifts: }\;\text{You can try to trade them for purely quadratic propagators using FCLoopReplaceQuadraticEikonalPropagators.} +\end{dmath*} + +\begin{dmath*}\breakingcomma +\text{FCLoopFindMomentumShifts: }\;\text{Failed to derive the momentum shifts between topologies mytopo79 and mytopo67. This can be due to the presence of nonquadratic propagators or because shifts in external momenta are also necessary.} +\end{dmath*} + \begin{dmath*}\breakingcomma \text{FCLoopFindTopologyMappings: }\;\text{Found }0\text{ mapping relations } \end{dmath*} @@ -400,20 +417,18 @@ \subsection{Examples} \begin{Shaded} \begin{Highlighting}[] -\NormalTok{eikRule }\ExtensionTok{=} \OperatorTok{\{}\NormalTok{SFAD}\OperatorTok{[\{\{}\NormalTok{k2}\OperatorTok{,} \SpecialCharTok{{-}}\NormalTok{meta u0b k2 . nb}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{0}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]} \OtherTok{{-}\textgreater{}}\NormalTok{ SFAD}\OperatorTok{[}\NormalTok{k2 }\SpecialCharTok{{-}}\NormalTok{ meta u0b}\SpecialCharTok{/}\DecValTok{2}\NormalTok{ nb}\OperatorTok{]\}} +\NormalTok{toposNew }\ExtensionTok{=}\NormalTok{ FCLoopReplaceQuadraticEikonalPropagators}\OperatorTok{[\{}\NormalTok{topoEik1}\OperatorTok{,}\NormalTok{ topoEik2}\OperatorTok{\},} +\NormalTok{ LoopMomenta }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{\},} +\NormalTok{ InitialSubstitutions }\OtherTok{{-}\textgreater{}} \OperatorTok{\{} +\NormalTok{ ExpandScalarProduct}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{{-}}\NormalTok{ k2}\OperatorTok{]]} \OtherTok{{-}\textgreater{}}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{{-}}\NormalTok{ k2}\OperatorTok{],} +\NormalTok{ ExpandScalarProduct}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{+}\NormalTok{ k2}\OperatorTok{]]} \OtherTok{{-}\textgreater{}}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{+}\NormalTok{ k2}\OperatorTok{]\},} +\NormalTok{ IntermediateSubstitutions }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{SPD}\OperatorTok{[}\FunctionTok{n}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,}\NormalTok{ SPD}\OperatorTok{[}\FunctionTok{n}\OperatorTok{,}\NormalTok{ nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{2}\OperatorTok{\}]}\NormalTok{;} \end{Highlighting} \end{Shaded} -\begin{dmath*}\breakingcomma -\left\{\frac{1}{(\text{k2}^2-\text{meta} \;\text{u0b} (\text{k2}\cdot \;\text{nb})+i \eta )}\to \frac{1}{((\text{k2}-\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2+i \eta )}\right\} -\end{dmath*} +```mathematica eikMappings = FCLoopFindTopologyMappings{[}toposNew{]}; -\begin{Shaded} -\begin{Highlighting}[] -\NormalTok{eikMappings }\ExtensionTok{=}\NormalTok{ FCLoopFindTopologyMappings}\OperatorTok{[\{}\NormalTok{topoEik1}\OperatorTok{,}\NormalTok{ topoEik2}\OperatorTok{\},} -\NormalTok{ InitialSubstitutions }\OtherTok{{-}\textgreater{}}\NormalTok{ eikRule}\OperatorTok{]}\NormalTok{;} -\end{Highlighting} -\end{Shaded} +```mathematica \begin{dmath*}\breakingcomma \text{FCLoopFindTopologyMappings: }\;\text{Found }1\text{ mapping relations } @@ -422,14 +437,4 @@ \subsection{Examples} \begin{dmath*}\breakingcomma \text{FCLoopFindTopologyMappings: }\;\text{Final number of independent topologies: }1 \end{dmath*} - -\begin{Shaded} -\begin{Highlighting}[] -\NormalTok{eikMappings}\OperatorTok{[[}\DecValTok{1}\OperatorTok{]][[}\DecValTok{1}\OperatorTok{]][[}\DecValTok{2}\NormalTok{ ;;}\OperatorTok{]]} -\end{Highlighting} -\end{Shaded} - -\begin{dmath*}\breakingcomma -\left\{\left\{\text{k1}\to -\text{k1},\text{k2}\to \frac{1}{2} (\text{meta} \;\text{nb} \;\text{u0b}-2 \;\text{k2})\right\},G^{\text{mytopo79}}(\text{n5$\_$},\text{n2$\_$},\text{n4$\_$},\text{n1$\_$},\text{n3$\_$},\text{n7$\_$},\text{n6$\_$}):\to G^{\text{mytopo67}}(\text{n1},\text{n2},\text{n3},\text{n4},\text{n5},\text{n6},\text{n7})\right\} -\end{dmath*} \end{document} diff --git a/pages/FCLoopReplaceQuadraticEikonalPropagators.tex b/pages/FCLoopReplaceQuadraticEikonalPropagators.tex new file mode 100644 index 0000000..582c0b0 --- /dev/null +++ b/pages/FCLoopReplaceQuadraticEikonalPropagators.tex @@ -0,0 +1,68 @@ +% !TeX program = pdflatex +% !TeX root = FCLoopReplaceQuadraticEikonalPropagators.tex + +\documentclass[../FeynCalcManual.tex]{subfiles} +\begin{document} +\hypertarget{fcloopreplacequadraticeikonalpropagators}{ +\section{FCLoopReplaceQuadraticEikonalPropagators}\label{fcloopreplacequadraticeikonalpropagators}\index{FCLoopReplaceQuadraticEikonalPropagators}} + +\texttt{FCLoopReplaceQuadraticEikonalPropagators[\allowbreak{}topologies]} +identifies \texttt{SFAD}s and \texttt{CFAD}s in \texttt{topologies} that +represent mixed quadratic-eikonal propagators, +e.g.~\([p^2 - 2 p \cdot q]\). Using the information on loop momenta +provided by the user the routine will try to rewrite those denominators +by completing the square, e.g.~as in \([(p-q)^2 - q^2]\). + +This procedure is useful because one cannot easily determine the +momentum flow from looking at quadratic-eikonal propagators as it is +possible in the case of purely quadratic ones. + +For this to work it is crucial to specify the loop momenta via the +\texttt{LoopMomenta} option as well as the kinematics +(\texttt{IntermediateSubstitutions}) and the rules for completing the +square (\texttt{InitialSubstitutions}) on the purely loop-momentum +dependent piece of the propagator +(e.g.~\(p_1^2 - 2 p_1 \cdot p_2 + p_2^2\) goes to \((p_1+p_2)^2\). + +Internally this routine uses \texttt{ToGFAD} and \texttt{FromGFAD}. + +\subsection{See also} + +\hyperlink{toc}{Overview}, \hyperlink{fctopology}{FCTopology}, +\hyperlink{gfad}{GFAD}, \hyperlink{fromgfad}{FromGFAD}, +\hyperlink{togfad}{ToGFAD}. + +\subsection{Examples} + +\begin{dmath*}\breakingcomma +(\text{DataType}[\#,\text{FCVariable}]=\text{True})\&\text{/@}\{\text{gkin},\text{meta},\text{u0b}\}; +\end{dmath*} + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{topos }\ExtensionTok{=} \OperatorTok{\{}\NormalTok{FCTopology}\OperatorTok{[}\NormalTok{preTopoDia1}\OperatorTok{,} \OperatorTok{\{}\NormalTok{SFAD}\OperatorTok{[\{\{}\NormalTok{k2}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{0}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],}\NormalTok{ SFAD}\OperatorTok{[\{\{}\NormalTok{k1}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{0}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],} +\NormalTok{ SFAD}\OperatorTok{[\{\{}\NormalTok{k1 }\SpecialCharTok{+}\NormalTok{ k2}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{0}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],}\NormalTok{ SFAD}\OperatorTok{[\{\{}\DecValTok{0}\OperatorTok{,} \SpecialCharTok{{-}}\NormalTok{k1 . nb}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{0}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],}\NormalTok{ SFAD}\OperatorTok{[\{\{}\NormalTok{k2}\OperatorTok{,} \SpecialCharTok{{-}}\NormalTok{(meta}\SpecialCharTok{*}\NormalTok{u0b}\SpecialCharTok{*}\NormalTok{k2 . nb)}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{0}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],} +\NormalTok{ SFAD}\OperatorTok{[\{\{}\NormalTok{k1 }\SpecialCharTok{+}\NormalTok{ k2}\OperatorTok{,} \SpecialCharTok{{-}}\DecValTok{2}\SpecialCharTok{*}\NormalTok{gkin}\SpecialCharTok{*}\NormalTok{meta}\SpecialCharTok{*}\NormalTok{u0b}\SpecialCharTok{*}\NormalTok{(k1 }\SpecialCharTok{+}\NormalTok{ k2) . }\FunctionTok{n}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{0}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],}\NormalTok{ SFAD}\OperatorTok{[\{\{}\NormalTok{k1}\OperatorTok{,} \SpecialCharTok{{-}}\DecValTok{2}\SpecialCharTok{*}\NormalTok{gkin}\SpecialCharTok{*}\NormalTok{meta}\SpecialCharTok{*}\NormalTok{k1 . }\FunctionTok{n} \SpecialCharTok{+}\NormalTok{ meta}\SpecialCharTok{*}\NormalTok{u0b}\SpecialCharTok{*}\NormalTok{k1 . nb}\OperatorTok{\},} + \OperatorTok{\{}\DecValTok{2}\SpecialCharTok{*}\NormalTok{gkin}\SpecialCharTok{*}\NormalTok{meta}\SpecialCharTok{\^{}}\DecValTok{2}\SpecialCharTok{*}\NormalTok{u0b}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],}\NormalTok{ SFAD}\OperatorTok{[\{\{}\NormalTok{k1}\OperatorTok{,} \SpecialCharTok{{-}}\DecValTok{2}\SpecialCharTok{*}\NormalTok{gkin}\SpecialCharTok{*}\NormalTok{meta}\SpecialCharTok{*}\NormalTok{u0b}\SpecialCharTok{*}\NormalTok{k1 . }\FunctionTok{n} \SpecialCharTok{+}\NormalTok{ meta}\SpecialCharTok{*}\NormalTok{u0b}\SpecialCharTok{*}\NormalTok{k1 . nb}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{2}\SpecialCharTok{*}\NormalTok{gkin}\SpecialCharTok{*}\NormalTok{meta}\SpecialCharTok{\^{}}\DecValTok{2}\SpecialCharTok{*}\NormalTok{u0b}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]\},} + \OperatorTok{\{}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{\},} \OperatorTok{\{}\FunctionTok{n}\OperatorTok{,}\NormalTok{ nb}\OperatorTok{\},} \OperatorTok{\{}\FunctionTok{Hold}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{][}\FunctionTok{n}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,} \FunctionTok{Hold}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{][}\NormalTok{nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,} \FunctionTok{Hold}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{][}\FunctionTok{n}\OperatorTok{,}\NormalTok{ nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{2}\OperatorTok{\},} \OperatorTok{\{\}]\}} +\end{Highlighting} +\end{Shaded} + +\begin{dmath*}\breakingcomma +\left\{\text{FCTopology}\left(\text{preTopoDia1},\left\{\frac{1}{(\text{k2}^2+i \eta )},\frac{1}{(\text{k1}^2+i \eta )},\frac{1}{((\text{k1}+\text{k2})^2+i \eta )},\frac{1}{(-\text{k1}\cdot \;\text{nb}+i \eta )},\frac{1}{(\text{k2}^2-\text{meta} \;\text{u0b} (\text{k2}\cdot \;\text{nb})+i \eta )},\frac{1}{((\text{k1}+\text{k2})^2-2 \;\text{gkin} \;\text{meta} \;\text{u0b} ((\text{k1}+\text{k2})\cdot n)+i \eta )},\frac{1}{(\text{k1}^2+\text{meta} \;\text{u0b} (\text{k1}\cdot \;\text{nb})-2 \;\text{gkin} \;\text{meta} (\text{k1}\cdot n)-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}+i \eta )},\frac{1}{(\text{k1}^2+\text{meta} \;\text{u0b} (\text{k1}\cdot \;\text{nb})-2 \;\text{gkin} \;\text{meta} \;\text{u0b} (\text{k1}\cdot n)-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}^2+i \eta )}\right\},\{\text{k1},\text{k2}\},\{n,\text{nb}\},\{\text{Hold}[\text{SPD}][n]\to 0,\text{Hold}[\text{SPD}][\text{nb}]\to 0,\text{Hold}[\text{SPD}][n,\text{nb}]\to 2\},\{\}\right)\right\} +\end{dmath*} + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{FCLoopReplaceQuadraticEikonalPropagators}\OperatorTok{[}\NormalTok{topos}\OperatorTok{,}\NormalTok{ LoopMomenta }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{\},} +\NormalTok{ InitialSubstitutions }\OtherTok{{-}\textgreater{}} \OperatorTok{\{} +\NormalTok{ ExpandScalarProduct}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{{-}}\NormalTok{ k2}\OperatorTok{]]} \OtherTok{{-}\textgreater{}}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{{-}}\NormalTok{ k2}\OperatorTok{],} +\NormalTok{ ExpandScalarProduct}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{+}\NormalTok{ k2}\OperatorTok{]]} \OtherTok{{-}\textgreater{}}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{+}\NormalTok{ k2}\OperatorTok{]\},} +\NormalTok{ IntermediateSubstitutions }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{SPD}\OperatorTok{[}\FunctionTok{n}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,}\NormalTok{ SPD}\OperatorTok{[}\FunctionTok{n}\OperatorTok{,}\NormalTok{ nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{\}]} +\end{Highlighting} +\end{Shaded} + +\begin{dmath*}\breakingcomma +\left\{\text{FCTopology}\left(\text{preTopoDia1},\left\{\frac{1}{(\text{k2}^2+i \eta )},\frac{1}{(\text{k1}^2+i \eta )},\frac{1}{((\text{k1}+\text{k2})^2+i \eta )},\frac{1}{(-\text{k1}\cdot \;\text{nb}+i \eta )},\frac{1}{((\text{k2}-\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2+i \eta )},\frac{1}{((\text{k1}+\text{k2}-\text{gkin} \;\text{meta} \;\text{u0b} n)^2+i \eta )},\frac{1}{((\text{k1}-\text{gkin} \;\text{meta} n+\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}+i \eta )},\frac{1}{((\text{k1}-\text{gkin} \;\text{meta} \;\text{u0b} n+\frac{\text{meta} \;\text{u0b} \;\text{nb}}{2})^2-2 \;\text{gkin} \;\text{meta}^2 \;\text{u0b}^2+i \eta )}\right\},\{\text{k1},\text{k2}\},\{n,\text{nb}\},\{\text{Hold}[\text{SPD}][n]\to 0,\text{Hold}[\text{SPD}][\text{nb}]\to 0,\text{Hold}[\text{SPD}][n,\text{nb}]\to 2\},\{\}\right)\right\} +\end{dmath*} +\end{document} diff --git a/pages/FeynCalc.tex b/pages/FeynCalc.tex index 20e7a3b..f95e8f9 100644 --- a/pages/FeynCalc.tex +++ b/pages/FeynCalc.tex @@ -1160,6 +1160,10 @@ \section{Loop integrals}\label{loop integrals}\index{Loop integrals}} \hyperlink{../fcloopremovepropagator}{../FCLoopRemovePropagator} - removes specific propagators from given \texttt{FCTopology}s or \texttt{GLI}s +\item + \hyperlink{../fcloopreplacequadraticeikonalpropagators}{../FCLoopReplaceQuadraticEikonalPropagators} + - tries to eliminate quadratic-eikonal propagators by completing the + square \item \hyperlink{../fcloopsamepropagatorheadsq}{../FCLoopSamePropagatorHeadsQ} - checks if the integral contains different types of propagators diff --git a/pages/FromGFAD.tex b/pages/FromGFAD.tex index e0937ed..9b48285 100644 --- a/pages/FromGFAD.tex +++ b/pages/FromGFAD.tex @@ -12,12 +12,20 @@ \section{FromGFAD}\label{fromgfad}\index{FromGFAD}} The options \texttt{InitialSubstitutions} and \texttt{IntermediateSubstitutions} can be used to help the function -handle nontrivial propagators. +handle nontrivial propagators. In particular, +\texttt{InitialSubstitutions} can define rules for completing the square +in the loop momenta of the propagator, while +\texttt{IntermediateSubstitutions} contains relations for scalar +products appearing in those rules. + +Another useful option is \texttt{LoopMomenta} which is particularly +helpful when converting mixed quadratic-eikonal propagators to quadratic +ones. For propagators containing symbolic variables it might be necessary to tell the function that those are larger than zero (if applicable), so that expressions such as \(\sqrt{\lambda^2}\) can be simplified -accordingly. +accordingly. To that aim one should use the option \texttt{PowerExpand}. \subsection{See also} @@ -36,42 +44,60 @@ \subsection{Examples} \end{Shaded} \begin{dmath*}\breakingcomma -\frac{1}{(\text{p1}^2+i \eta )} +\text{GFAD}(\text{SPD}(\text{p1})) \end{dmath*} \begin{dmath*}\breakingcomma -\frac{1}{(\text{p1}^2+i \eta )} +\text{FromGFAD}(\text{GFAD}(\text{SPD}(\text{p1}))) \end{dmath*} \begin{Shaded} \begin{Highlighting}[] \NormalTok{ex }\SpecialCharTok{//} \FunctionTok{StandardForm} -\CommentTok{(*FeynAmpDenominator[StandardPropagatorDenominator[Momentum[p1, D], 0, 0, \{1, 1\}]]*)} +\CommentTok{(*FromGFAD[GFAD[SPD[p1]]]*)} \end{Highlighting} \end{Shaded} \begin{Shaded} \begin{Highlighting}[] -\NormalTok{GFAD}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{]} \SpecialCharTok{+} \DecValTok{2}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,}\NormalTok{ p2}\OperatorTok{]]} - -\NormalTok{ex }\ExtensionTok{=}\NormalTok{ FromGFAD}\OperatorTok{[}\SpecialCharTok{\%}\OperatorTok{]} +\NormalTok{ex }\ExtensionTok{=}\NormalTok{ GFAD}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{]} \SpecialCharTok{+} \DecValTok{2}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,}\NormalTok{ p2}\OperatorTok{]]} +\end{Highlighting} +\end{Shaded} + +\begin{dmath*}\breakingcomma +\text{GFAD}(2 \;\text{SPD}(\text{p1},\text{p2})+\text{SPD}(\text{p1})) +\end{dmath*} + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{FromGFAD}\OperatorTok{[}\NormalTok{ex}\OperatorTok{]} \end{Highlighting} \end{Shaded} \begin{dmath*}\breakingcomma -\frac{1}{(\text{p1}^2+2 (\text{p1}\cdot \;\text{p2})+i \eta )} +\text{FromGFAD}(\text{GFAD}(2 \;\text{SPD}(\text{p1},\text{p2})+\text{SPD}(\text{p1}))) \end{dmath*} +We can get a proper conversion into a quadratic propagator using the +option \texttt{LoopMomenta}. Notice that here \texttt{p2.p2} is being +put into the mass slot + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{FromGFAD}\OperatorTok{[}\NormalTok{ex}\OperatorTok{,}\NormalTok{ LoopMomenta }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{p1}\OperatorTok{\}]} +\end{Highlighting} +\end{Shaded} + \begin{dmath*}\breakingcomma -\frac{1}{(\text{p1}^2+2 (\text{p1}\cdot \;\text{p2})+i \eta )} +\text{FromGFAD}(\text{GFAD}(2 \;\text{SPD}(\text{p1},\text{p2})+\text{SPD}(\text{p1})),\text{LoopMomenta}\to \{\text{p1}\}) \end{dmath*} \begin{Shaded} \begin{Highlighting}[] \NormalTok{ex }\SpecialCharTok{//} \FunctionTok{StandardForm} -\CommentTok{(*FeynAmpDenominator[StandardPropagatorDenominator[Momentum[p1, D], 2 Pair[Momentum[p1, D], Momentum[p2, D]], 0, \{1, 1\}]]*)} +\CommentTok{(*GFAD[SPD[p1] + 2 SPD[p1, p2]]*)} \end{Highlighting} \end{Shaded} @@ -84,30 +110,31 @@ \subsection{Examples} \end{Shaded} \begin{dmath*}\breakingcomma -\frac{1}{(m^2+\text{p1}^2+2 (\text{p1}\cdot \;\text{p2})-i \eta )^2} +\text{GFAD}\left(\left\{\left\{2 \;\text{CSPD}(\text{p1},\text{p2})+\text{CSPD}(\text{p1})+m^2,-1\right\},2\right\}\right) \end{dmath*} \begin{dmath*}\breakingcomma -\frac{1}{(\text{p1}^2+2 (\text{p1}\cdot \;\text{p2})+m^2-i \eta )^2} +\text{FromGFAD}\left(\text{GFAD}\left(\left\{\left\{2 \;\text{CSPD}(\text{p1},\text{p2})+\text{CSPD}(\text{p1})+m^2,-1\right\},2\right\}\right)\right) \end{dmath*} \begin{Shaded} \begin{Highlighting}[] \NormalTok{ex }\SpecialCharTok{//} \FunctionTok{StandardForm} -\CommentTok{(*FeynAmpDenominator[CartesianPropagatorDenominator[0, CartesianPair[CartesianMomentum[p1, {-}1 + D], CartesianMomentum[p1, {-}1 + D]] + 2 CartesianPair[CartesianMomentum[p1, {-}1 + D], CartesianMomentum[p2, {-}1 + D]], m\^{}2, \{2, {-}1\}]]*)} +\CommentTok{(*FromGFAD[GFAD[\{\{m\^{}2 + CSPD[p1] + 2 CSPD[p1, p2], {-}1\}, 2\}]]*)} \end{Highlighting} \end{Shaded} \begin{Shaded} \begin{Highlighting}[] +\NormalTok{DataType}\OperatorTok{[}\NormalTok{la}\OperatorTok{,}\NormalTok{ FCVariable}\OperatorTok{]} \ExtensionTok{=} \ConstantTok{True}\NormalTok{;} \NormalTok{prop }\ExtensionTok{=}\NormalTok{ FeynAmpDenominator}\OperatorTok{[}\NormalTok{GenericPropagatorDenominator}\OperatorTok{[}\SpecialCharTok{{-}}\NormalTok{la Pair}\OperatorTok{[}\NormalTok{Momentum}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,} \FunctionTok{D}\OperatorTok{],} \NormalTok{ Momentum}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,} \FunctionTok{D}\OperatorTok{]]} \SpecialCharTok{+} \DecValTok{2}\NormalTok{ Pair}\OperatorTok{[}\NormalTok{Momentum}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,} \FunctionTok{D}\OperatorTok{],}\NormalTok{ Momentum}\OperatorTok{[}\FunctionTok{q}\OperatorTok{,} \FunctionTok{D}\OperatorTok{]],} \OperatorTok{\{}\DecValTok{1}\OperatorTok{,}\DecValTok{1}\OperatorTok{\}]]} \end{Highlighting} \end{Shaded} \begin{dmath*}\breakingcomma -\frac{1}{(2 (\text{p1}\cdot q)-\text{la} \;\text{p1}^2+i \eta )} +\text{FeynAmpDenominator}(\text{GenericPropagatorDenominator}(2 \;\text{Pair}(\text{Momentum}(\text{p1},D),\text{Momentum}(q,D))-\text{la} \;\text{Pair}(\text{Momentum}(\text{p1},D),\text{Momentum}(\text{p1},D)),\{1,1\})) \end{dmath*} \begin{Shaded} @@ -117,114 +144,177 @@ \subsection{Examples} \end{Shaded} \begin{dmath*}\breakingcomma -\frac{1}{(-\text{la} \;\text{p1}^2+2 (\text{p1}\cdot q)+i \eta )} +\text{FromGFAD}(\text{FeynAmpDenominator}(\text{GenericPropagatorDenominator}(2 \;\text{Pair}(\text{Momentum}(\text{p1},D),\text{Momentum}(q,D))-\text{la} \;\text{Pair}(\text{Momentum}(\text{p1},D),\text{Momentum}(\text{p1},D)),\{1,1\}))) \end{dmath*} \begin{Shaded} \begin{Highlighting}[] -\NormalTok{ex }\SpecialCharTok{//} \FunctionTok{StandardForm} +\NormalTok{ex }\ExtensionTok{=}\NormalTok{ FromGFAD}\OperatorTok{[}\NormalTok{prop}\OperatorTok{,}\NormalTok{ LoopMomenta }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{p1}\OperatorTok{\}]} \end{Highlighting} \end{Shaded} \begin{dmath*}\breakingcomma -\text{FeynAmpDenominator}\left[\text{StandardPropagatorDenominator}\left[\sqrt{-\text{la}} \;\text{Momentum}[\text{p1},D],2 \;\text{Pair}[\text{Momentum}[\text{p1},D],\text{Momentum}[q,D]],0,\{1,1\}\right]\right] +\text{FromGFAD}(\text{FeynAmpDenominator}(\text{GenericPropagatorDenominator}(2 \;\text{Pair}(\text{Momentum}(\text{p1},D),\text{Momentum}(q,D))-\text{la} \;\text{Pair}(\text{Momentum}(\text{p1},D),\text{Momentum}(\text{p1},D)),\{1,1\})),\text{LoopMomenta}\to \{\text{p1}\}) \end{dmath*} \begin{Shaded} \begin{Highlighting}[] -\NormalTok{ex }\ExtensionTok{=}\NormalTok{ FromGFAD}\OperatorTok{[}\NormalTok{prop}\OperatorTok{,} \FunctionTok{PowerExpand} \OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{la}\OperatorTok{\}]} +\NormalTok{ex }\ExtensionTok{=}\NormalTok{ GFAD}\OperatorTok{[\{\{}\SpecialCharTok{{-}}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,}\NormalTok{ p1}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,} \SpecialCharTok{{-}}\NormalTok{p1 }\SpecialCharTok{+} \DecValTok{2}\SpecialCharTok{*}\NormalTok{p3}\OperatorTok{]} \SpecialCharTok{{-}}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{p3}\OperatorTok{,}\NormalTok{ p3}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*} +\NormalTok{ GFAD}\OperatorTok{[\{\{}\SpecialCharTok{{-}}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p3}\OperatorTok{,}\NormalTok{ p3}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{SFAD}\OperatorTok{[\{\{}\FunctionTok{I}\SpecialCharTok{*}\NormalTok{(p1 }\SpecialCharTok{+} \FunctionTok{q}\NormalTok{)}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\SpecialCharTok{{-}}\NormalTok{mb}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*} +\NormalTok{ SFAD}\OperatorTok{[\{\{}\FunctionTok{I}\SpecialCharTok{*}\NormalTok{(p3 }\SpecialCharTok{+} \FunctionTok{q}\NormalTok{)}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\SpecialCharTok{{-}}\NormalTok{mb}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]} \SpecialCharTok{+}\NormalTok{ (}\SpecialCharTok{{-}}\DecValTok{2}\SpecialCharTok{*}\NormalTok{mg}\SpecialCharTok{\^{}}\DecValTok{2}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\SpecialCharTok{{-}}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,}\NormalTok{ p1}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{2}\OperatorTok{\}]}\SpecialCharTok{*} +\NormalTok{ GFAD}\OperatorTok{[\{\{}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,} \SpecialCharTok{{-}}\NormalTok{p1 }\SpecialCharTok{+} \DecValTok{2}\SpecialCharTok{*}\NormalTok{p3}\OperatorTok{]} \SpecialCharTok{{-}}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{p3}\OperatorTok{,}\NormalTok{ p3}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\SpecialCharTok{{-}}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p3}\OperatorTok{,}\NormalTok{ p3}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*} +\NormalTok{ SFAD}\OperatorTok{[\{\{}\FunctionTok{I}\SpecialCharTok{*}\NormalTok{(p1 }\SpecialCharTok{+} \FunctionTok{q}\NormalTok{)}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\SpecialCharTok{{-}}\NormalTok{mb}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{SFAD}\OperatorTok{[\{\{}\FunctionTok{I}\SpecialCharTok{*}\NormalTok{(p3 }\SpecialCharTok{+} \FunctionTok{q}\NormalTok{)}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\SpecialCharTok{{-}}\NormalTok{mb}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]} \SpecialCharTok{{-}} + \DecValTok{2}\SpecialCharTok{*}\NormalTok{mg}\SpecialCharTok{\^{}}\DecValTok{2}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\SpecialCharTok{{-}}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,}\NormalTok{ p1}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,} \SpecialCharTok{{-}}\NormalTok{p1 }\SpecialCharTok{+} \DecValTok{2}\SpecialCharTok{*}\NormalTok{p3}\OperatorTok{]} \SpecialCharTok{{-}}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{p3}\OperatorTok{,}\NormalTok{ p3}\OperatorTok{],} + \DecValTok{1}\OperatorTok{\},} \DecValTok{2}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\SpecialCharTok{{-}}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p3}\OperatorTok{,}\NormalTok{ p3}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{SFAD}\OperatorTok{[\{\{}\FunctionTok{I}\SpecialCharTok{*}\NormalTok{(p1 }\SpecialCharTok{+} \FunctionTok{q}\NormalTok{)}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\SpecialCharTok{{-}}\NormalTok{mb}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*} +\NormalTok{ SFAD}\OperatorTok{[\{\{}\FunctionTok{I}\SpecialCharTok{*}\NormalTok{(p3 }\SpecialCharTok{+} \FunctionTok{q}\NormalTok{)}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\SpecialCharTok{{-}}\NormalTok{mb}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]} \SpecialCharTok{{-}} \DecValTok{2}\SpecialCharTok{*}\NormalTok{mg}\SpecialCharTok{\^{}}\DecValTok{2}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\SpecialCharTok{{-}}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,}\NormalTok{ p1}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} + \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,} \SpecialCharTok{{-}}\NormalTok{p1 }\SpecialCharTok{+} \DecValTok{2}\SpecialCharTok{*}\NormalTok{p3}\OperatorTok{]} \SpecialCharTok{{-}}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{p3}\OperatorTok{,}\NormalTok{ p3}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\SpecialCharTok{{-}}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p3}\OperatorTok{,}\NormalTok{ p3}\OperatorTok{],} + \DecValTok{1}\OperatorTok{\},} \DecValTok{2}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{SFAD}\OperatorTok{[\{\{}\FunctionTok{I}\SpecialCharTok{*}\NormalTok{(p1 }\SpecialCharTok{+} \FunctionTok{q}\NormalTok{)}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\SpecialCharTok{{-}}\NormalTok{mb}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{SFAD}\OperatorTok{[\{\{}\FunctionTok{I}\SpecialCharTok{*}\NormalTok{(p3 }\SpecialCharTok{+} \FunctionTok{q}\NormalTok{)}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} + \OperatorTok{\{}\SpecialCharTok{{-}}\NormalTok{mb}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\NormalTok{)}\SpecialCharTok{/}\DecValTok{2} \end{Highlighting} \end{Shaded} \begin{dmath*}\breakingcomma -\frac{1}{(-\text{la} \;\text{p1}^2+2 (\text{p1}\cdot q)+i \eta )} +\frac{1}{2} \left(-2 \;\text{mg}^2 \;\text{GFAD}(\{\{-\text{SPD}(\text{p1},\text{p1}),1\},2\}) \;\text{GFAD}(\{\{-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{GFAD}(\{\{\text{SPD}(\text{p1},2 \;\text{p3}-\text{p1})-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{SFAD}\left(\left\{\{i (\text{p1}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right) \;\text{SFAD}\left(\left\{\{i (\text{p3}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right)-2 \;\text{mg}^2 \;\text{GFAD}(\{\{-\text{SPD}(\text{p1},\text{p1}),1\},1\}) \;\text{GFAD}(\{\{-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{GFAD}(\{\{\text{SPD}(\text{p1},2 \;\text{p3}-\text{p1})-\text{SPD}(\text{p3},\text{p3}),1\},2\}) \;\text{SFAD}\left(\left\{\{i (\text{p1}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right) \;\text{SFAD}\left(\left\{\{i (\text{p3}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right)-2 \;\text{mg}^2 \;\text{GFAD}(\{\{-\text{SPD}(\text{p1},\text{p1}),1\},1\}) \;\text{GFAD}(\{\{-\text{SPD}(\text{p3},\text{p3}),1\},2\}) \;\text{GFAD}(\{\{\text{SPD}(\text{p1},2 \;\text{p3}-\text{p1})-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{SFAD}\left(\left\{\{i (\text{p1}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right) \;\text{SFAD}\left(\left\{\{i (\text{p3}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right)\right)+\text{GFAD}(\{\{-\text{SPD}(\text{p1},\text{p1}),1\},1\}) \;\text{GFAD}(\{\{-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{GFAD}(\{\{\text{SPD}(\text{p1},2 \;\text{p3}-\text{p1})-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{SFAD}\left(\left\{\{i (\text{p1}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right) \;\text{SFAD}\left(\left\{\{i (\text{p3}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right) \end{dmath*} +Notice that \texttt{FromGFAD} does not expand scalar products in the +propagators before trying to convert them to \texttt{SFAD}s or +\texttt{CFAD}s. If this is needed, the user should better apply +\texttt{ExpandScalarProduct} to the expression by hand. + \begin{Shaded} \begin{Highlighting}[] -\NormalTok{ex }\SpecialCharTok{//} \FunctionTok{StandardForm} +\NormalTok{FromGFAD}\OperatorTok{[}\NormalTok{ex}\OperatorTok{]} \end{Highlighting} \end{Shaded} \begin{dmath*}\breakingcomma -\text{FeynAmpDenominator}\left[\text{StandardPropagatorDenominator}\left[i \sqrt{\text{la}} \;\text{Momentum}[\text{p1},D],2 \;\text{Pair}[\text{Momentum}[\text{p1},D],\text{Momentum}[q,D]],0,\{1,1\}\right]\right] +\text{FromGFAD}\left(\frac{1}{2} \left(-2 \;\text{mg}^2 \;\text{GFAD}(\{\{-\text{SPD}(\text{p1},\text{p1}),1\},2\}) \;\text{GFAD}(\{\{-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{GFAD}(\{\{\text{SPD}(\text{p1},2 \;\text{p3}-\text{p1})-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{SFAD}\left(\left\{\{i (\text{p1}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right) \;\text{SFAD}\left(\left\{\{i (\text{p3}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right)-2 \;\text{mg}^2 \;\text{GFAD}(\{\{-\text{SPD}(\text{p1},\text{p1}),1\},1\}) \;\text{GFAD}(\{\{-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{GFAD}(\{\{\text{SPD}(\text{p1},2 \;\text{p3}-\text{p1})-\text{SPD}(\text{p3},\text{p3}),1\},2\}) \;\text{SFAD}\left(\left\{\{i (\text{p1}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right) \;\text{SFAD}\left(\left\{\{i (\text{p3}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right)-2 \;\text{mg}^2 \;\text{GFAD}(\{\{-\text{SPD}(\text{p1},\text{p1}),1\},1\}) \;\text{GFAD}(\{\{-\text{SPD}(\text{p3},\text{p3}),1\},2\}) \;\text{GFAD}(\{\{\text{SPD}(\text{p1},2 \;\text{p3}-\text{p1})-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{SFAD}\left(\left\{\{i (\text{p1}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right) \;\text{SFAD}\left(\left\{\{i (\text{p3}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right)\right)+\text{GFAD}(\{\{-\text{SPD}(\text{p1},\text{p1}),1\},1\}) \;\text{GFAD}(\{\{-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{GFAD}(\{\{\text{SPD}(\text{p1},2 \;\text{p3}-\text{p1})-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{SFAD}\left(\left\{\{i (\text{p1}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right) \;\text{SFAD}\left(\left\{\{i (\text{p3}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right)\right) \end{dmath*} \begin{Shaded} \begin{Highlighting}[] -\NormalTok{ex }\ExtensionTok{=}\NormalTok{ GFAD}\OperatorTok{[\{\{}\SpecialCharTok{{-}}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,}\NormalTok{ p1}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,} \SpecialCharTok{{-}}\NormalTok{p1 }\SpecialCharTok{+} \DecValTok{2}\SpecialCharTok{*}\NormalTok{p3}\OperatorTok{]} \SpecialCharTok{{-}}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{p3}\OperatorTok{,}\NormalTok{ p3}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*} -\NormalTok{ GFAD}\OperatorTok{[\{\{}\SpecialCharTok{{-}}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p3}\OperatorTok{,}\NormalTok{ p3}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{SFAD}\OperatorTok{[\{\{}\FunctionTok{I}\SpecialCharTok{*}\NormalTok{(p1 }\SpecialCharTok{+} \FunctionTok{q}\NormalTok{)}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\SpecialCharTok{{-}}\NormalTok{mb}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*} -\NormalTok{ SFAD}\OperatorTok{[\{\{}\FunctionTok{I}\SpecialCharTok{*}\NormalTok{(p3 }\SpecialCharTok{+} \FunctionTok{q}\NormalTok{)}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\SpecialCharTok{{-}}\NormalTok{mb}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]} \SpecialCharTok{+}\NormalTok{ (}\SpecialCharTok{{-}}\DecValTok{2}\SpecialCharTok{*}\NormalTok{mg}\SpecialCharTok{\^{}}\DecValTok{2}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\SpecialCharTok{{-}}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,}\NormalTok{ p1}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{2}\OperatorTok{\}]}\SpecialCharTok{*} -\NormalTok{ GFAD}\OperatorTok{[\{\{}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,} \SpecialCharTok{{-}}\NormalTok{p1 }\SpecialCharTok{+} \DecValTok{2}\SpecialCharTok{*}\NormalTok{p3}\OperatorTok{]} \SpecialCharTok{{-}}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{p3}\OperatorTok{,}\NormalTok{ p3}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\SpecialCharTok{{-}}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p3}\OperatorTok{,}\NormalTok{ p3}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*} -\NormalTok{ SFAD}\OperatorTok{[\{\{}\FunctionTok{I}\SpecialCharTok{*}\NormalTok{(p1 }\SpecialCharTok{+} \FunctionTok{q}\NormalTok{)}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\SpecialCharTok{{-}}\NormalTok{mb}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{SFAD}\OperatorTok{[\{\{}\FunctionTok{I}\SpecialCharTok{*}\NormalTok{(p3 }\SpecialCharTok{+} \FunctionTok{q}\NormalTok{)}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\SpecialCharTok{{-}}\NormalTok{mb}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]} \SpecialCharTok{{-}} - \DecValTok{2}\SpecialCharTok{*}\NormalTok{mg}\SpecialCharTok{\^{}}\DecValTok{2}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\SpecialCharTok{{-}}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,}\NormalTok{ p1}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,} \SpecialCharTok{{-}}\NormalTok{p1 }\SpecialCharTok{+} \DecValTok{2}\SpecialCharTok{*}\NormalTok{p3}\OperatorTok{]} \SpecialCharTok{{-}}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{p3}\OperatorTok{,}\NormalTok{ p3}\OperatorTok{],} - \DecValTok{1}\OperatorTok{\},} \DecValTok{2}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\SpecialCharTok{{-}}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p3}\OperatorTok{,}\NormalTok{ p3}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{SFAD}\OperatorTok{[\{\{}\FunctionTok{I}\SpecialCharTok{*}\NormalTok{(p1 }\SpecialCharTok{+} \FunctionTok{q}\NormalTok{)}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\SpecialCharTok{{-}}\NormalTok{mb}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*} -\NormalTok{ SFAD}\OperatorTok{[\{\{}\FunctionTok{I}\SpecialCharTok{*}\NormalTok{(p3 }\SpecialCharTok{+} \FunctionTok{q}\NormalTok{)}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\SpecialCharTok{{-}}\NormalTok{mb}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]} \SpecialCharTok{{-}} \DecValTok{2}\SpecialCharTok{*}\NormalTok{mg}\SpecialCharTok{\^{}}\DecValTok{2}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\SpecialCharTok{{-}}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,}\NormalTok{ p1}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} - \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p1}\OperatorTok{,} \SpecialCharTok{{-}}\NormalTok{p1 }\SpecialCharTok{+} \DecValTok{2}\SpecialCharTok{*}\NormalTok{p3}\OperatorTok{]} \SpecialCharTok{{-}}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{p3}\OperatorTok{,}\NormalTok{ p3}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{GFAD}\OperatorTok{[\{\{}\SpecialCharTok{{-}}\NormalTok{SPD}\OperatorTok{[}\NormalTok{p3}\OperatorTok{,}\NormalTok{ p3}\OperatorTok{],} - \DecValTok{1}\OperatorTok{\},} \DecValTok{2}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{SFAD}\OperatorTok{[\{\{}\FunctionTok{I}\SpecialCharTok{*}\NormalTok{(p1 }\SpecialCharTok{+} \FunctionTok{q}\NormalTok{)}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\SpecialCharTok{{-}}\NormalTok{mb}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\SpecialCharTok{*}\NormalTok{SFAD}\OperatorTok{[\{\{}\FunctionTok{I}\SpecialCharTok{*}\NormalTok{(p3 }\SpecialCharTok{+} \FunctionTok{q}\NormalTok{)}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} - \OperatorTok{\{}\SpecialCharTok{{-}}\NormalTok{mb}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\NormalTok{)}\SpecialCharTok{/}\DecValTok{2} +\NormalTok{FromGFAD}\OperatorTok{[}\NormalTok{ExpandScalarProduct}\OperatorTok{[}\NormalTok{ex}\OperatorTok{]]} \end{Highlighting} \end{Shaded} \begin{dmath*}\breakingcomma -\frac{1}{2} \left(-\frac{2 \;\text{mg}^2}{(-\text{p1}^2+i \eta )^2 (-\text{p3}^2+i \eta ) (-(\text{p1}+q)^2+\text{mb}^2+i \eta ) (-(\text{p3}+q)^2+\text{mb}^2+i \eta ) (\text{p1}\cdot (2 \;\text{p3}-\text{p1})-\text{p3}^2+i \eta )}-\frac{2 \;\text{mg}^2}{(-\text{p1}^2+i \eta ) (-\text{p3}^2+i \eta ) (-(\text{p1}+q)^2+\text{mb}^2+i \eta ) (-(\text{p3}+q)^2+\text{mb}^2+i \eta ) (\text{p1}\cdot (2 \;\text{p3}-\text{p1})-\text{p3}^2+i \eta )^2}-\frac{2 \;\text{mg}^2}{(-\text{p1}^2+i \eta ) (-\text{p3}^2+i \eta )^2 (-(\text{p1}+q)^2+\text{mb}^2+i \eta ) (-(\text{p3}+q)^2+\text{mb}^2+i \eta ) (\text{p1}\cdot (2 \;\text{p3}-\text{p1})-\text{p3}^2+i \eta )}\right)+\frac{1}{(-\text{p1}^2+i \eta ) (-\text{p3}^2+i \eta ) (-(\text{p1}+q)^2+\text{mb}^2+i \eta ) (-(\text{p3}+q)^2+\text{mb}^2+i \eta ) (\text{p1}\cdot (2 \;\text{p3}-\text{p1})-\text{p3}^2+i \eta )} +\text{FromGFAD}\left(\text{ExpandScalarProduct}\left(\frac{1}{2} \left(-2 \;\text{mg}^2 \;\text{GFAD}(\{\{-\text{SPD}(\text{p1},\text{p1}),1\},2\}) \;\text{GFAD}(\{\{-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{GFAD}(\{\{\text{SPD}(\text{p1},2 \;\text{p3}-\text{p1})-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{SFAD}\left(\left\{\{i (\text{p1}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right) \;\text{SFAD}\left(\left\{\{i (\text{p3}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right)-2 \;\text{mg}^2 \;\text{GFAD}(\{\{-\text{SPD}(\text{p1},\text{p1}),1\},1\}) \;\text{GFAD}(\{\{-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{GFAD}(\{\{\text{SPD}(\text{p1},2 \;\text{p3}-\text{p1})-\text{SPD}(\text{p3},\text{p3}),1\},2\}) \;\text{SFAD}\left(\left\{\{i (\text{p1}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right) \;\text{SFAD}\left(\left\{\{i (\text{p3}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right)-2 \;\text{mg}^2 \;\text{GFAD}(\{\{-\text{SPD}(\text{p1},\text{p1}),1\},1\}) \;\text{GFAD}(\{\{-\text{SPD}(\text{p3},\text{p3}),1\},2\}) \;\text{GFAD}(\{\{\text{SPD}(\text{p1},2 \;\text{p3}-\text{p1})-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{SFAD}\left(\left\{\{i (\text{p1}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right) \;\text{SFAD}\left(\left\{\{i (\text{p3}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right)\right)+\text{GFAD}(\{\{-\text{SPD}(\text{p1},\text{p1}),1\},1\}) \;\text{GFAD}(\{\{-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{GFAD}(\{\{\text{SPD}(\text{p1},2 \;\text{p3}-\text{p1})-\text{SPD}(\text{p3},\text{p3}),1\},1\}) \;\text{SFAD}\left(\left\{\{i (\text{p1}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right) \;\text{SFAD}\left(\left\{\{i (\text{p3}+q),0\},\left\{-\text{mb}^2,1\right\},1\right\}\right)\right)\right) \end{dmath*} +Using the option \texttt{InitialSubstitutions} one can perform certain +replacement that might not be found automatically. The values of scalar +products can be set using \texttt{IntermediateSubstitutions} + \begin{Shaded} \begin{Highlighting}[] -\NormalTok{FromGFAD}\OperatorTok{[}\NormalTok{ex}\OperatorTok{]} +\NormalTok{ex }\ExtensionTok{=}\NormalTok{ GFAD}\OperatorTok{[\{\{}\NormalTok{SPD}\OperatorTok{[}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k1}\OperatorTok{]} \SpecialCharTok{{-}} \DecValTok{2}\SpecialCharTok{*}\NormalTok{gkin}\SpecialCharTok{*}\NormalTok{meta}\SpecialCharTok{*}\NormalTok{u0b}\SpecialCharTok{*}\NormalTok{SPD}\OperatorTok{[}\NormalTok{k1}\OperatorTok{,} \FunctionTok{n}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]}\NormalTok{;} +\end{Highlighting} +\end{Shaded} + +Notice that we need to declare the appearing variables as +\texttt{FCVariable}s + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{(DataType}\OperatorTok{[}\NormalTok{\#}\OperatorTok{,}\NormalTok{ FCVariable}\OperatorTok{]} \ExtensionTok{=} \ConstantTok{True}\NormalTok{) \& }\SpecialCharTok{/}\NormalTok{@ }\OperatorTok{\{}\NormalTok{gkin}\OperatorTok{,}\NormalTok{ meta}\OperatorTok{,}\NormalTok{ u0b}\OperatorTok{\}}\NormalTok{;} +\end{Highlighting} +\end{Shaded} + +Without these options we get a mixed quadratic-eikonal propagator that +will cause us troubles when doing topology minimizations. + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{FromGFAD}\OperatorTok{[}\NormalTok{ex}\OperatorTok{,}\NormalTok{ FCE }\OtherTok{{-}\textgreater{}} \ConstantTok{True}\OperatorTok{]} +\SpecialCharTok{\%} \SpecialCharTok{//} \FunctionTok{InputForm} \end{Highlighting} \end{Shaded} \begin{dmath*}\breakingcomma -\frac{1}{2} \left(-\frac{2 \;\text{mg}^2}{(-\text{p1}^2+i \eta )^2 (-\text{p3}^2+i \eta ) (-(\text{p1}+q)^2+\text{mb}^2+i \eta ) (-(\text{p3}+q)^2+\text{mb}^2+i \eta ) (-\text{p3}^2+2 (\text{p1}\cdot \;\text{p3})-\text{p1}^2+i \eta )}-\frac{2 \;\text{mg}^2}{(-\text{p1}^2+i \eta ) (-\text{p3}^2+i \eta )^2 (-(\text{p1}+q)^2+\text{mb}^2+i \eta ) (-(\text{p3}+q)^2+\text{mb}^2+i \eta ) (-\text{p3}^2+2 (\text{p1}\cdot \;\text{p3})-\text{p1}^2+i \eta )}-\frac{2 \;\text{mg}^2}{(-\text{p1}^2+i \eta ) (-\text{p3}^2+i \eta ) (-(\text{p1}+q)^2+\text{mb}^2+i \eta ) (-(\text{p3}+q)^2+\text{mb}^2+i \eta ) (-\text{p3}^2+2 (\text{p1}\cdot \;\text{p3})-\text{p1}^2+i \eta )^2}\right)+\frac{1}{(-\text{p1}^2+i \eta ) (-\text{p3}^2+i \eta ) (-(\text{p1}+q)^2+\text{mb}^2+i \eta ) (-(\text{p3}+q)^2+\text{mb}^2+i \eta ) (-\text{p3}^2+2 (\text{p1}\cdot \;\text{p3})-\text{p1}^2+i \eta )} +\text{FromGFAD}(\text{GFAD}(\{\{\text{SPD}(\text{k1},\text{k1})-2 \;\text{gkin} \;\text{meta} \;\text{u0b} \;\text{SPD}(\text{k1},n),1\},1\}),\text{FCE}\to \;\text{True}) \end{dmath*} -Using the option \texttt{InitialSubstitutions} one can perform certain -replacement that might not be found automatically +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{FromGFAD}\OperatorTok{[}\NormalTok{GFAD}\OperatorTok{[\{\{}\NormalTok{SPD}\OperatorTok{[}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k1}\OperatorTok{]} \SpecialCharTok{{-}} \DecValTok{2}\SpecialCharTok{*}\NormalTok{gkin}\SpecialCharTok{*}\NormalTok{meta}\SpecialCharTok{*}\NormalTok{u0b}\SpecialCharTok{*}\NormalTok{SPD}\OperatorTok{[}\NormalTok{k1}\OperatorTok{,} \FunctionTok{n}\OperatorTok{],} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],} +\NormalTok{ FCE }\OtherTok{{-}\textgreater{}} \ConstantTok{True}\OperatorTok{]} +\end{Highlighting} +\end{Shaded} + +But when doing everything right we end up with a purely quadratic +propagator \begin{Shaded} \begin{Highlighting}[] -\NormalTok{ex }\ExtensionTok{=}\NormalTok{ GFAD}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{[}\NormalTok{k1}\OperatorTok{]} \SpecialCharTok{+} \DecValTok{2}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{]} \SpecialCharTok{+}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k2}\OperatorTok{]} \SpecialCharTok{+}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k1}\OperatorTok{,} \FunctionTok{n}\OperatorTok{]]} +\NormalTok{FromGFAD}\OperatorTok{[}\NormalTok{ex}\OperatorTok{,}\NormalTok{ InitialSubstitutions }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{ExpandScalarProduct}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{{-}}\NormalTok{ gkin meta u0b }\FunctionTok{n}\OperatorTok{]]} \OtherTok{{-}\textgreater{}}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{{-}}\NormalTok{ gkin meta u0b }\FunctionTok{n}\OperatorTok{]\},} +\NormalTok{ IntermediateSubstitutions }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{SPD}\OperatorTok{[}\FunctionTok{n}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,}\NormalTok{ SPD}\OperatorTok{[}\FunctionTok{n}\OperatorTok{,}\NormalTok{ nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{2}\OperatorTok{\}]} \end{Highlighting} \end{Shaded} \begin{dmath*}\breakingcomma -\frac{1}{(\text{k1}^2+2 (\text{k1}\cdot \;\text{k2})+\text{k1}\cdot n+\text{k2}^2+i \eta )} +\text{FromGFAD}(\text{GFAD}(\{\{\text{SPD}(\text{k1},\text{k1})-2 \;\text{gkin} \;\text{meta} \;\text{u0b} \;\text{SPD}(\text{k1},n),1\},1\}),\text{InitialSubstitutions}\to \{\text{ExpandScalarProduct}(\text{SPD}(\text{k1}-\text{gkin} \;\text{meta} n \;\text{u0b}))\to \;\text{SPD}(\text{k1}-\text{gkin} \;\text{meta} n \;\text{u0b})\},\text{IntermediateSubstitutions}\to \{\text{SPD}(n)\to 0,\text{SPD}(\text{nb})\to 0,\text{SPD}(n,\text{nb})\to 2\}) \end{dmath*} +However, in this case the function can also figure out the necessary +square completion on its own if we tell it that \texttt{k1} is a +momentum w.r.t which the square should be completed. In this case the +option \texttt{IntermediateSubstitutions} is not really needed + \begin{Shaded} \begin{Highlighting}[] -\NormalTok{FromGFAD}\OperatorTok{[}\NormalTok{ex}\OperatorTok{,}\NormalTok{ FCE }\OtherTok{{-}\textgreater{}} \ConstantTok{True}\OperatorTok{]} -\SpecialCharTok{\%} \SpecialCharTok{//} \FunctionTok{InputForm} +\NormalTok{FromGFAD}\OperatorTok{[}\NormalTok{ex}\OperatorTok{,}\NormalTok{ LoopMomenta }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{k1}\OperatorTok{\}]} \end{Highlighting} \end{Shaded} \begin{dmath*}\breakingcomma -\frac{1}{(\text{k1}^2+\text{k1}\cdot (2 \;\text{k2}+n)+\text{k2}^2+i \eta )} +\text{FromGFAD}(\text{GFAD}(\{\{\text{SPD}(\text{k1},\text{k1})-2 \;\text{gkin} \;\text{meta} \;\text{u0b} \;\text{SPD}(\text{k1},n),1\},1\}),\text{LoopMomenta}\to \{\text{k1}\}) \end{dmath*} +It is still helpful, though + \begin{Shaded} \begin{Highlighting}[] -\NormalTok{SFAD}\OperatorTok{[\{\{}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k1 . (}\DecValTok{2}\SpecialCharTok{*}\NormalTok{k2 }\SpecialCharTok{+} \FunctionTok{n}\NormalTok{) }\SpecialCharTok{+}\NormalTok{ k2 . k2}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{0}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]} +\NormalTok{FromGFAD}\OperatorTok{[}\NormalTok{ex}\OperatorTok{,}\NormalTok{ LoopMomenta }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{k1}\OperatorTok{\},}\NormalTok{ IntermediateSubstitutions }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{SPD}\OperatorTok{[}\FunctionTok{n}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{,}\NormalTok{ SPD}\OperatorTok{[}\FunctionTok{n}\OperatorTok{,}\NormalTok{ nb}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{2}\OperatorTok{\}]} \end{Highlighting} \end{Shaded} +\begin{dmath*}\breakingcomma +\text{FromGFAD}(\text{GFAD}(\{\{\text{SPD}(\text{k1},\text{k1})-2 \;\text{gkin} \;\text{meta} \;\text{u0b} \;\text{SPD}(\text{k1},n),1\},1\}),\text{LoopMomenta}\to \{\text{k1}\},\text{IntermediateSubstitutions}\to \{\text{SPD}(n)\to 0,\text{SPD}(\text{nb})\to 0,\text{SPD}(n,\text{nb})\to 2\}) +\end{dmath*} + +If we have multiple loop momenta, we need to first complete the square +with respect to them before handling the full expression + \begin{Shaded} \begin{Highlighting}[] -\NormalTok{FromGFAD}\OperatorTok{[}\NormalTok{ex}\OperatorTok{,}\NormalTok{ FCE }\OtherTok{{-}\textgreater{}} \ConstantTok{True}\OperatorTok{,}\NormalTok{ InitialSubstitutions }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{ExpandScalarProduct}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{+}\NormalTok{ k2}\OperatorTok{]]} \OtherTok{{-}\textgreater{}}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{+}\NormalTok{ k2}\OperatorTok{]\}]} -\SpecialCharTok{\%} \SpecialCharTok{//} \FunctionTok{InputForm} +\NormalTok{ex }\ExtensionTok{=}\NormalTok{ GFAD}\OperatorTok{[\{\{}\NormalTok{SPD}\OperatorTok{[}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k1}\OperatorTok{]} \SpecialCharTok{+} \DecValTok{2}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{]} \SpecialCharTok{+}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k2}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{]} \SpecialCharTok{+} \DecValTok{2}\NormalTok{ gkin meta (SPD}\OperatorTok{[}\NormalTok{k1}\OperatorTok{,} \FunctionTok{n}\OperatorTok{]} \SpecialCharTok{+}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k2}\OperatorTok{,} \FunctionTok{n}\OperatorTok{]}\NormalTok{)}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]} \end{Highlighting} \end{Shaded} \begin{dmath*}\breakingcomma -\frac{1}{((\text{k1}+\text{k2})^2+\text{k1}\cdot n+i \eta )} +\text{GFAD}(\{\{2 \;\text{gkin} \;\text{meta} (\text{SPD}(\text{k1},n)+\text{SPD}(\text{k2},n))+2 \;\text{SPD}(\text{k1},\text{k2})+\text{SPD}(\text{k1},\text{k1})+\text{SPD}(\text{k2},\text{k2}),1\},1\}) \end{dmath*} \begin{Shaded} \begin{Highlighting}[] -\NormalTok{SFAD}\OperatorTok{[\{\{}\NormalTok{k1 }\SpecialCharTok{+}\NormalTok{ k2}\OperatorTok{,}\NormalTok{ k1 . }\FunctionTok{n}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{0}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}]} +\NormalTok{FromGFAD}\OperatorTok{[}\NormalTok{ex}\OperatorTok{,}\NormalTok{ LoopMomenta }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{\}]} \end{Highlighting} \end{Shaded} +\begin{dmath*}\breakingcomma +\text{FromGFAD}(\text{GFAD}(\{\{2 \;\text{gkin} \;\text{meta} (\text{SPD}(\text{k1},n)+\text{SPD}(\text{k2},n))+2 \;\text{SPD}(\text{k1},\text{k2})+\text{SPD}(\text{k1},\text{k1})+\text{SPD}(\text{k2},\text{k2}),1\},1\}),\text{LoopMomenta}\to \{\text{k1},\text{k2}\}) +\end{dmath*} + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{FromGFAD}\OperatorTok{[}\NormalTok{ex}\OperatorTok{,}\NormalTok{ LoopMomenta }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{\},} +\NormalTok{ InitialSubstitutions }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{ExpandScalarProduct}\OperatorTok{[}\NormalTok{SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{+}\NormalTok{ k2}\OperatorTok{]]} \OtherTok{{-}\textgreater{}}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k1 }\SpecialCharTok{+}\NormalTok{ k2}\OperatorTok{]\},} +\NormalTok{ IntermediateSubstitutions }\OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{SPD}\OperatorTok{[}\FunctionTok{n}\OperatorTok{]} \OtherTok{{-}\textgreater{}} \DecValTok{0}\OperatorTok{\}]} +\end{Highlighting} +\end{Shaded} + +\begin{dmath*}\breakingcomma +\text{FromGFAD}(\text{GFAD}(\{\{2 \;\text{gkin} \;\text{meta} (\text{SPD}(\text{k1},n)+\text{SPD}(\text{k2},n))+2 \;\text{SPD}(\text{k1},\text{k2})+\text{SPD}(\text{k1},\text{k1})+\text{SPD}(\text{k2},\text{k2}),1\},1\}),\text{LoopMomenta}\to \{\text{k1},\text{k2}\},\text{InitialSubstitutions}\to \{\text{ExpandScalarProduct}(\text{SPD}(\text{k1}+\text{k2}))\to \;\text{SPD}(\text{k1}+\text{k2})\},\text{IntermediateSubstitutions}\to \{\text{SPD}(n)\to 0\}) +\end{dmath*} \end{document} diff --git a/pages/MomentumCombine.tex b/pages/MomentumCombine.tex index 952b5c2..ded410b 100644 --- a/pages/MomentumCombine.tex +++ b/pages/MomentumCombine.tex @@ -8,7 +8,34 @@ \section{MomentumCombine}\label{momentumcombine}\index{MomentumCombine}} \texttt{MomentumCombine[\allowbreak{}expr]} is the inverse operation to \texttt{MomentumExpand} and \texttt{ExpandScalarProduct}. -\texttt{MomentumCombine} combines also \texttt{Pair}s. +\texttt{MomentumCombine} combines also \texttt{Pair}s. Notice, that +\texttt{MomentumCombine} cannot complete squares. It can, however, bring +expressions containing scalar products to a suitable form that allows +for a square completion using other means. + +This function offers multiple options. + +The option \texttt{NumberQ} (default is \texttt{True}) specifies whether +one should only merge quantities with numerical prefactors or not. +Setting it to \texttt{False} allows for symbolic prefactors. + +Setting the option \texttt{"Quadratic"} to \texttt{False} (default is +\texttt{True}) effectively means that momenta squared will not be +combined with anything else. + +With the option \texttt{"ExcludeScalarProducts"} we can ensure that +scalar products containing any of the momenta listed are not merged with +anything else. So \texttt{a.x + a.y} can be merged either if \texttt{a} +contains no such momenta, or if both \texttt{x} and \texttt{y} are free +of them. + +The option \texttt{Except} forbids merging the listed momenta with +anything else. It is much more restrictive than +\texttt{"ExcludeScalarProducts"} that allows for merging terms linear in +the listed momenta. + +The option \texttt{Select} allows for gathering all terms linear in the +given momenta before applying any other combining rules. \subsection{See also} @@ -189,4 +216,70 @@ \subsection{Examples} \begin{dmath*}\breakingcomma (\text{a1} n+\text{a2} \;\text{nb})\cdot p+k\cdot p+l\cdot p+p^2 \end{dmath*} + +Suppose that we have an expression that can be written as a square. To +achieve the desired combination of momenta we need to + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{(DataType}\OperatorTok{[}\NormalTok{\#}\OperatorTok{,}\NormalTok{ FCVariable}\OperatorTok{]} \ExtensionTok{=} \ConstantTok{True}\NormalTok{) \& }\SpecialCharTok{/}\NormalTok{@ }\OperatorTok{\{}\NormalTok{gkin}\OperatorTok{,}\NormalTok{ meta}\OperatorTok{,}\NormalTok{ u0b}\OperatorTok{\}}\NormalTok{;} +\end{Highlighting} +\end{Shaded} + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{ex }\ExtensionTok{=}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k1}\OperatorTok{]} \SpecialCharTok{{-}} \DecValTok{2}\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{]} \SpecialCharTok{+} \DecValTok{2}\NormalTok{ gkin meta SPD}\OperatorTok{[}\NormalTok{k1}\OperatorTok{,} \FunctionTok{n}\OperatorTok{]} \SpecialCharTok{{-}} \DecValTok{2}\NormalTok{ gkin meta u0b SPD}\OperatorTok{[}\NormalTok{k1}\OperatorTok{,} \FunctionTok{n}\OperatorTok{]} \SpecialCharTok{{-}}\NormalTok{ meta u0b SPD}\OperatorTok{[}\NormalTok{k1}\OperatorTok{,}\NormalTok{ nb}\OperatorTok{]} \SpecialCharTok{+} +\NormalTok{ SPD}\OperatorTok{[}\NormalTok{k2}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{]} \SpecialCharTok{{-}} \DecValTok{2}\NormalTok{ gkin meta SPD}\OperatorTok{[}\NormalTok{k2}\OperatorTok{,} \FunctionTok{n}\OperatorTok{]} \SpecialCharTok{+} \DecValTok{2}\NormalTok{ gkin meta u0b SPD}\OperatorTok{[}\NormalTok{k2}\OperatorTok{,} \FunctionTok{n}\OperatorTok{]} \SpecialCharTok{+}\NormalTok{meta u0b SPD}\OperatorTok{[}\NormalTok{k2}\OperatorTok{,}\NormalTok{ nb}\OperatorTok{]} +\end{Highlighting} +\end{Shaded} + +\begin{dmath*}\breakingcomma +-2 \;\text{gkin} \;\text{meta} \;\text{u0b} (\text{k1}\cdot n)+2 \;\text{gkin} \;\text{meta} (\text{k1}\cdot n)+2 \;\text{gkin} \;\text{meta} \;\text{u0b} (\text{k2}\cdot n)-2 \;\text{gkin} \;\text{meta} (\text{k2}\cdot n)-2 (\text{k1}\cdot \;\text{k2})-\text{meta} \;\text{u0b} (\text{k1}\cdot \;\text{nb})+\text{k1}^2+\text{meta} \;\text{u0b} (\text{k2}\cdot \;\text{nb})+\text{k2}^2 +\end{dmath*} + +The naive application of \texttt{MomentumCombine} doesn't return +anything useful + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{MomentumCombine}\OperatorTok{[}\NormalTok{ex}\OperatorTok{]} +\end{Highlighting} +\end{Shaded} + +\begin{dmath*}\breakingcomma +\text{meta} \;\text{u0b} ((\text{k2}-\text{k1})\cdot \;\text{nb})+\text{k1}\cdot (\text{k1}-2 \;\text{k2})-2 \;\text{gkin} \;\text{meta} \;\text{u0b} (\text{k1}\cdot n)+2 \;\text{gkin} \;\text{meta} (\text{k1}\cdot n)+2 \;\text{gkin} \;\text{meta} \;\text{u0b} (\text{k2}\cdot n)-2 \;\text{gkin} \;\text{meta} (\text{k2}\cdot n)+\text{k2}^2 +\end{dmath*} + +Here we actually want to gather terms linear in \texttt{k1} and +\texttt{k2}first before trying to combine them together. To that aim we +can use the option \texttt{Select}. Employing the options +\texttt{"Quadratic"} and \texttt{"ExcludeScalarProducts"} we can prevent +\texttt{k1} and \texttt{k2} from getting combined with anything +containing those momenta. Furthermore, we enable symbolical prefactor by +setting \texttt{NumberQ} to false + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{MomentumCombine}\OperatorTok{[}\NormalTok{ex}\OperatorTok{,} \FunctionTok{Select} \OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{\},} \StringTok{"Quadratic"} \OtherTok{{-}\textgreater{}} \ConstantTok{False}\OperatorTok{,} \StringTok{"ExcludeScalarProducts"} \OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{\},} \FunctionTok{NumberQ} \OtherTok{{-}\textgreater{}} \ConstantTok{False}\OperatorTok{]} +\end{Highlighting} +\end{Shaded} + +\begin{dmath*}\breakingcomma +\text{k1}\cdot (-2 \;\text{gkin} \;\text{meta} n \;\text{u0b}+2 \;\text{gkin} \;\text{meta} n-\text{meta} \;\text{nb} \;\text{u0b})+\text{k2}\cdot (2 \;\text{gkin} \;\text{meta} n \;\text{u0b}-2 \;\text{gkin} \;\text{meta} n+\text{meta} \;\text{nb} \;\text{u0b})-2 (\text{k1}\cdot \;\text{k2})+\text{k1}^2+\text{k2}^2 +\end{dmath*} + +This result looks very good, but \texttt{k1} and \texttt{k2} were not +combined because they are contracted to long linear combinations of +4-momenta that were not properly factorized. The option +\texttt{Factoring} solves this issue + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{res }\ExtensionTok{=}\NormalTok{ MomentumCombine}\OperatorTok{[}\NormalTok{ex}\OperatorTok{,} \FunctionTok{Select} \OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{\},} \StringTok{"Quadratic"} \OtherTok{{-}\textgreater{}} \ConstantTok{False}\OperatorTok{,} \StringTok{"ExcludeScalarProducts"} \OtherTok{{-}\textgreater{}} \OperatorTok{\{}\NormalTok{k1}\OperatorTok{,}\NormalTok{ k2}\OperatorTok{\},} \FunctionTok{NumberQ} \OtherTok{{-}\textgreater{}} \ConstantTok{False}\OperatorTok{,}\NormalTok{ Factoring }\OtherTok{{-}\textgreater{}}\NormalTok{ Factor2}\OperatorTok{]} +\end{Highlighting} +\end{Shaded} + +\begin{dmath*}\breakingcomma +\text{meta} ((\text{k1}-\text{k2})\cdot (-2 \;\text{gkin} n \;\text{u0b}+2 \;\text{gkin} n-\text{nb} \;\text{u0b}))-2 (\text{k1}\cdot \;\text{k2})+\text{k1}^2+\text{k2}^2 +\end{dmath*} \end{document} diff --git a/pages/ToGFAD.tex b/pages/ToGFAD.tex index 91921fd..89fc6dd 100644 --- a/pages/ToGFAD.tex +++ b/pages/ToGFAD.tex @@ -12,7 +12,12 @@ \section{ToGFAD}\label{togfad}\index{ToGFAD}} where e.g.~scalar products may not be appear explicitly when using \texttt{FAD}- or \texttt{SFAD}-notation. -ToGFAD is the inverse operation to FromGFAD. +\texttt{ToGFAD} is the inverse operation to \texttt{FromGFAD}. + +Using the option ``OnlyMixedQuadraticEikonalPropagators'' one can limit +the conversion to a particular type of standard and Cartesian propagator +denominators that contain both quadratic and eikonal pieces. Those are +the ones that usually cause issues when doing topology minimization \subsection{See also} @@ -77,4 +82,27 @@ \subsection{Examples} \end{Highlighting} \end{Shaded} +This is not a mixed quadratic-eikonal propagator so it remains unchanged + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{ToGFAD}\OperatorTok{[}\NormalTok{SFAD}\OperatorTok{[\{\{}\NormalTok{k2}\OperatorTok{,} \DecValTok{0}\OperatorTok{\},} \OperatorTok{\{}\DecValTok{0}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],} \StringTok{"OnlyMixedQuadraticEikonalPropagators"} \OtherTok{{-}\textgreater{}} \ConstantTok{True}\OperatorTok{,} +\NormalTok{ FCE }\OtherTok{{-}\textgreater{}} \ConstantTok{True}\OperatorTok{]} \SpecialCharTok{//} \FunctionTok{StandardForm} + +\CommentTok{(*SFAD[\{\{k2, 0\}, \{0, 1\}, 1\}]*)} +\end{Highlighting} +\end{Shaded} + +This is a mixed propagator that will be converted to a \texttt{GFAD} + +\begin{Shaded} +\begin{Highlighting}[] +\NormalTok{ToGFAD}\OperatorTok{[}\NormalTok{SFAD}\OperatorTok{[\{\{}\NormalTok{k1}\OperatorTok{,} \DecValTok{2}\NormalTok{ gkin meta k1 . }\FunctionTok{n} \SpecialCharTok{{-}} \DecValTok{2}\NormalTok{ gkin meta u0b k1 . }\FunctionTok{n} \SpecialCharTok{{-}}\NormalTok{ meta u0b k1 . nb}\OperatorTok{\},} + \OperatorTok{\{}\DecValTok{2}\NormalTok{ gkin meta}\SpecialCharTok{\^{}}\DecValTok{2}\NormalTok{ u0b }\SpecialCharTok{{-}} \DecValTok{2}\NormalTok{ gkin meta}\SpecialCharTok{\^{}}\DecValTok{2}\NormalTok{ u0b}\SpecialCharTok{\^{}}\DecValTok{2}\OperatorTok{,} \DecValTok{1}\OperatorTok{\},} \DecValTok{1}\OperatorTok{\}],} + \StringTok{"OnlyMixedQuadraticEikonalPropagators"} \OtherTok{{-}\textgreater{}} \ConstantTok{True}\OperatorTok{,}\NormalTok{ FCE }\OtherTok{{-}\textgreater{}} \ConstantTok{True}\OperatorTok{]} \SpecialCharTok{//} \FunctionTok{StandardForm} + +\CommentTok{(*GFAD[\{\{{-}2 gkin meta\^{}2 u0b + 2 gkin meta\^{}2 u0b\^{}2 + SPD[k1, k1] + 2 gkin meta SPD[k1, n] {-} 2 gkin meta u0b SPD[k1, n] {-} meta u0b SPD[k1, nb], 1\}, 1\}]*)} +\end{Highlighting} +\end{Shaded} + \end{document}