Skip to content

Commit e463e08

Browse files
committed
fix: CTrunc must use the full set of truncation rules after the first pass
fix: cos is Global`cos Signed-off-by: Franz R. Sattler <fsattler@physik.uni-bielefeld.de>
1 parent 12bc035 commit e463e08

File tree

5 files changed

+10
-8
lines changed

5 files changed

+10
-8
lines changed

PacletInfo.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
(* ::Package:: *)
22

3-
PacletObject[<|"Name" -> "FunKit", "Version" -> "0.3.2", "WolframVersion" -> "11.0+", "Extensions" -> {{"Kernel", "Context" -> {{"FunKit`", "FunKit.m"}}}, {"Documentation", "Language" -> "English"}}|>]
3+
PacletObject[<|"Name" -> "FunKit", "Version" -> "0.3.3", "WolframVersion" -> "11.0+", "Extensions" -> {{"Kernel", "Context" -> {{"FunKit`", "FunKit.m"}}}, {"Documentation", "Language" -> "English"}}|>]

modules/FEDeriK/Truncation.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -626,7 +626,7 @@ Returns list of Associations (complete index->field mappings for surviving terms
626626
hd[b : {_, _}..] /; FreeQ[{b}[[All, 1]], AnyField] && !MemberQ[truncSorted[hd], Sort[{b}[[All, 1]]]] :> 0
627627
]&
628628
,
629-
Select[truncKeys, !MemberQ[propLikeHeads, #]&]
629+
truncKeys
630630
];
631631
(*Incremental Distribute: one propagator at a time, pre-resolve + batch kill*)
632632
current = NonCommutativeMultiply @@ retL;

modules/TRACY.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ The first form removes all files in the main trace cache (usually /tmp/TraceCach
9999
Integrates with FORM's optimization capabilities when available for maximum efficiency.
100100
Essential for making large diagrammatic calculations computationally manageable.";
101101

102-
cos::usage = "cos[x,y]
102+
Global`cos::usage = "cos[x,y]
103103
Defines a symbolic cosine function (orderless, i.e. cos[x,y] == cos[y,x]).
104104
Used in FORM rules for projecting to symmetric point configurations where the angle between momenta is relevant.";
105105

modules/TRACY/FORM.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323

2424
(* ::Input::Initialization:: *)
2525

26-
SetAttributes[cos, Orderless];
26+
SetAttributes[Global`cos, Orderless];
2727

28-
cos[p_, p_] :=
28+
Global`cos[p_, p_] :=
2929
1;
3030

3131
SetAttributes[Evaluate[Head @ Global`TBInsertOutputNaming[Global`TBsp[p1, p2]]], Orderless];

publication/FunKit.tex

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -770,7 +770,7 @@ \subsection{Deriving diagrams}
770770
colframe=pastelgreen!73!black,
771771
fonttitle=\bfseries]
772772
773-
With \mathem{\mmaDef{FSimplify}} we introduce an algorithm for the simplification of large sums of diagrams. \mathem{\mmaDef{FSimplify}} can detect identical diagrams and performs the following steps to find all matches and sum them:
773+
With \mathem{\mmaDef{FSimplify}} we introduce an algorithm for the simplification of large sums of connected diagrams. \mathem{\mmaDef{FSimplify}} can detect identical diagrams and performs the following steps to find all matches and sum~them:
774774
%
775775
\begin{enumerate}
776776
\item All Diagrams with exactly the same content of objects and the same set of open indices are grouped together.
@@ -875,7 +875,7 @@ \subsection{Truncating the output}
875875
%
876876
\begin{itemize}
877877
\item If no undetermined fields \mathem{\mmaDef{AnyField}} are present, apply the truncation table directly and return the result. This zeros all objects whose field content is not listed in the setup's key \mathem{"Truncation"}.
878-
\item \textbf{Propagator truncation} (primary path): For each propagator-like object (\mathem{\mmaDef{Propagator}}, \mathem{\mmaDef{Rdot}}, \mathem{\mmaDef{R}}) with \mathem{\mmaDef{AnyField}}, enumerate its explicit field alternatives from the truncation table.
878+
\item \textbf{Propagator truncation}: For each propagator-like object (\mathem{\mmaDef{Propagator}}, \mathem{\mmaDef{Rdot}}, \mathem{\mmaDef{R}}) with \mathem{\mmaDef{AnyField}}, enumerate its explicit field alternatives from the truncation table.
879879
Incrementally replace each unresolved propagator with the sum of its alternatives, propagate the field assignments to connected objects, and fully expand the product over the sum.
880880
After each expansion step, apply the truncation table. This early pruning prevents combinatorial blowup by discarding invalid branches before subsequent propagators are expanded.
881881
\item \textbf{Vertex truncation}: For terms containing no propagator-like objects, valid field assignments are instead enumerated by imposing consistency at every closed index incrementally and validating each surviving assignment against the truncation table.
@@ -923,7 +923,9 @@ \subsection{Routing momenta and group indices}
923923
\end{align}
924924
%
925925
and it can be readily obtained in \FunKit by using the \mathem{\mmaDef{FMakeDSE}[...]}, providing a setup and a field that is inserted for the superindex $c$.
926-
To obtain an equation for the gluon two-point function, we choose $c = A^a_{\mu}$ and take a further functional derivative with respect to $A$ (note that we don't provide a setup, as a global one has been specified before):
926+
Note that \mathem{\mmaDef{FMakeDSE}} can be readily constructed also by the user: First, $\delta S / \delta \phi^c$ can be directly created from a given classical action, e.g. using \mathem{\mmaDef{FMakeClassicalAction}}. Next, all fields can be replaced with the rule \mathem{f[a_]->\mmaDef{FEx}[\mmaDef{FTerm}[f[a]],\mmaDef{FTerm}[\mmaDef{Propagator}[{f,\mmaDef{AnyField}},{a,b}],\mmaDef{FDOp}[\mmaDef{AnyField}[b]]]]}. Finally, one can resolve all derivative operators with \mathem{\mmaDef{FResolveDerivatives}}. This is precisely what the convenience function \mathem{\mmaDef{FMakeDSE}} internally does.
927+
928+
Now, to obtain an equation for the gluon two-point function, we choose $c = A^a_{\mu}$ and take a further functional derivative with respect to $A$ (note that we don't provide a setup, as a global one has been specified before):
927929
928930
\begin{mmaCell}{Input}
929931
gluonDSE = \mmaDef{FTakeDerivatives}[\mmaDef{FMakeDSE}[A[i1]], \{A[i2]\}]//\mmaDef{FTruncate}//\mmaDef{FRoute};

0 commit comments

Comments
 (0)