diff --git a/img/189bbth1nyc1e.pdf b/img/189bbth1nyc1e.pdf new file mode 100644 index 0000000..9165828 Binary files /dev/null and b/img/189bbth1nyc1e.pdf differ 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}