Parametrize - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim

Physics[FeynmanIntegral][Parametrize] - parametrize a Feynman integral, as the ones returned by the FeynmanDiagrams command, appearing in the expansion of the Scattering matrix in momentum representation

Calling Sequence

Parametrize(inert_Feynman_integral, options)




the inert form of Feynman integral, that is a function whose name is %FeynmanIntegral, as the ones returned by FeynmanDiagrams when working in momentum representation.



kindofparameters = ... : the kind of auxiliary parameters - Feynman (default) or α - used to parametrize Feynman integrals.


numberofpropagators = ... : the right-hand side a non-assigned name to which the number of propagators parametrized will be assigned.


parameters = ... : the right-hand side a non-assigned name to which the parameters introduced will be assigned.


quiet = ... : the right-hand side can be true or false (default), to display or not information related to matching keywords


returnintegrand = ... : the right-hand side can be true or false (default). if set to true, Parametrize will return only the integrand of the parametrized Feynman integral, omitting the integrals over the parameters. This option is frequently used together with the parameters option to also get the parameters introduced.


All the optional keywords that can have the value true on the right-hand side can be passed just as themselves, not as an equation, representing the value true. For example quiet is the same as quiet = true. Also, you don't need to use the exact spelling of any of these keywords - any unambiguous portion of them suffices, e.g. perform for performmomentumintegration.



Parametrize receives a Feynman integral constructed using the inert function %FeynmanIntegral, as the ones returned by the FeynmanDiagrams command, and rewrites the integrand replacing the propagators by parametrized integrals, using Feynman (default) or α parameters. This is the first step performed by the FeynmanIntegral command towards the computation of the integral using dimensional regularization.


Only propagators involving a loop momentum (the integration variable of the %FeynmanIntegral), of the form p__n, so the letter p followed by two underscores and where n is a positive integer, are included in the parametrization. The output is the parametrized form of the integral, or, if specified, only of the integrand.


The available parametrization schemes introduce either Feynman or alpha (also known as Schwinger) parameters. The Feynman parametrization of a product of L denominators A_l is [1]


where the ξi are the Feynman parameters, and the αi and λj are, respectively, the α parameters and the λ (possibly complex) exponents.






interface(imaginaryunit = i):

%FeynmanIntegral(1/((-m^2 + p__1^2 + i * epsilon)*(p__1^2 + i * epsilon)), p__1);

1m2+p__12+εp__12+εⅆp__1 4




Parametrize((2), integrand);

* Partial match of 'integrand' against keyword 'returnintegrand'



Parametrize((2), kindofparameters = alpha);

00ⅇp__12α__1+α__2ⅇ−ⅈα__1m2ⅆα__1ⅆα__2ⅆp__1 4


Parametrize((2), propagators = 'LP');

* Partial match of 'propagators' against keyword 'propagatorslist'


The list of propagators:




An example departing from an interaction Lagrangian

L := lambda*phi(X)^3;



A process with one incoming and one outgoing particle a 1-loop

FeynmanDiagrams(L, incomingparticles = [phi], outgoingparticles = [phi], numberofloops = 1, diagrams);

9λ2δP__2+P__18π3E__1E__2P__1+p__22m__φ2+εp__22m__φ2+εⅆp__2 4


To Parametrize this Feynman integral using Feynman parameters, use



Parametrizing the integral is the first step towards its evaluation. Within the FeynmanIntegral package, to evaluate the integral, using dimensional regularization, you can use Evaluate




Evaluate((9), expanddimension);



To remove the series structure of this result and have it expressed as a polynomial see convert/polynomial.

The same process at two loops

FeynmanDiagrams(L, incomingparticles = [phi], outgoingparticles = [phi], numberofloops = 2);

28164λ4δP__2+P__1π7E__1E__2P__2+p__4+p__52m__φ2+εP__2P__1+p__4+p__52m__φ2+εp__4+p__52m__φ2+εp__42m__φ2+εp__52m__φ2+εⅆp__4 4ⅆp__5 4+8164λ4δP__2+P__1π7E__1E__2P__1+p__4+p__52m__φ2+εp__4+p__52m__φ2+εP__2p__42m__φ2+εp__42m__φ2+εp__52m__φ2+εⅆp__4 4ⅆp__5 4+8164λ4δP__2+P__1π7E__1E__2P__1+P__2p__4+p__52m__φ2+εP__2+p__4p__52m__φ2+εP__2p__42m__φ2+εp__42m__φ2+εp__52m__φ2+εⅆp__4 4ⅆp__5 4


To Parametrize each Feynman integral within this expression you can use subsindets

subsindets((13), specfunc(%FeynmanIntegral), Parametrize);


See Also

convert/polynomial, Dgamma, Evaluate, FeynmanDiagrams, FeynmanIntegral[Overview], Physics, Physics conventions, Physics examples, Physics Updates, Tensors - a complete guide, Mini-Course Computer Algebra for Physicists, Setup, TensorReduce



[1] Smirnov, V.A., Feynman Integral Calculus. Springer, 2006.


[2] Weinberg, S., The Quantum Theory Of Fields. Cambridge University Press, 2005.


[3] Bogoliubov, N.N., and Shirkov, D.V. Quantum Fields. Benjamin Cummings, 1982.



The Physics[FeynmanIntegral][Parametrize] command was introduced in Maple 2021.


For more information on Maple 2021 changes, see Updates in Maple 2021.