FeynCalc manual (development version)

DataType

DataType[exp, type] = True defines the object exp to have data-type type.

DataType[exp1, exp2, ..., type] defines the objects exp1, exp2, ... to have data-type type.

The default setting is DataType[__, _] := False.

To assign a certain data-type, do, e.g., DataType[x, PositiveInteger] = True. Currently used DataTypes:

If loaded, PHI adds the DataTypes: UMatrix, UScalar.

See also

Overview, DeclareNonCommutative, NonCommutative, PositiveInteger, NegativeInteger, PositiveNumber, FreeIndex, GrassmannParity, FCTensor, ImplicitDiracIndex, ImplicitPauliIndex, ImplicitSUNFIndex.

Examples

NonCommutative is just a data-type.

DataType[f, g, NonCommutative] = True; 
 
t = f . g - g . (2 a) . f

f.g-g.(2 a).f

Since f and g have DataType NonCommutative, the function DotSimplify extracts only a out of the noncommutative product.

DotSimplify[t]

f.g-2 a g.f

DataType[m, odd] = DataType[a, even] = True; 
 
ptest1[x_] := x /. (-1)^n_ /; DataType[n, odd] :> -1; 
 
ptest2[x_] := x /. (-1)^n_ /; DataType[n, even] :> 1; 
 
t = (-1)^m + (-1)^a + (-1)^z

(-1)^a+(-1)^m+(-1)^z

ptest1[t] 
 
ptest2[%]

(-1)^a+(-1)^z-1

(-1)^z

Clear[ptest1, ptest2, t, a, m];
DataType[m, integer] = True; 
 
f[x_] := x /. {(-1)^p_ /; DataType[p, integer] :> 1};
test = (-1)^m + (-1)^n x

(-1)^m+(-1)^n x

f[test]

(-1)^n x+1

Clear[f, test]; 
 
DataType[f, g, NonCommutative] = False; 
 
DataType[m, odd] = DataType[a, even] = False;

Certain FeynCalc objects have DataType PositiveInteger set to True.

DataType[OPEm, PositiveInteger]

\text{True}

PowerSimplify uses the DataType information.

PowerSimplify[ (-1)^(2 OPEm)]

1

PowerSimplify[ (- SO[q])^OPEm]

(\Delta \cdot q)^m e^{2 i \pi m \left\lfloor -\frac{\arg (\Delta \cdot q)}{2 \pi }\right\rfloor +i \pi m}