[an error occurred while processing this directive]
Package-X is hosted by Hepforge, IPPP Durham

CollierCompile

CollierCompile[{x1,x2,},expr]
creates a compiled function that evaluates expr using the COLLIER library assuming numerical values of the xi.

CollierCompile[{x1,x2,},Module[{y1,y2,},expr]]
creates a compiled function with local variables yi.

Details and OptionsDetails and Options

  • CollierCompile creates C code, which is compiled to an external machine code library and linked back into Mathematica via LibraryLink as a CollierCompiledFunction.
  • All arguments xi and numerical quantities in expr are assumed double complex type.
  • CollierCompile can compile a limited set of Wolfram Language symbols. As of this version, the following symbols are supported:
  • FunctionsPlus, Times, Power, Log, Conjugate, Re, Im, Abs, Arg
    ConstantsI, Pi, E
    NumbersInteger, Real, Complex, Rational
  • CollierCompile can compile PVA, PVB, PVC, PVD, PVX, and Derivative[0,0,1,0,0][PVB], and calls the COLLIER library functions TN_cll and DB_cll to numerically evaluate them.
  • Typically, the output of LoopIntegrate, suitably manipulated, is supplied as the input expr. Since LoopIntegrate gives a result valid for any value of the kinematic variables, expr may be evaluated with complex internal masses.
  • CollierCompile has attributes HoldAll. Use CollierCompile[,Evaluate[expr]] to evaluate expr symbolically before compilation.
  • The following options can be given:
  • Constants{}variables declared as constants
    "UseCacheSystem"Truewhether to use COLLIER's global cache system
    "ExpressionOptimization"Automaticwhether to optimize the input expression
    "InlineExternalDefinitions"Falsewhether to insert OwnValues of symbols
  • The option Constants should be given as a list of rules of the form {sym1val1,sym2val2,}.
  • With the setting "UseCacheSystem"True, a new cache is added with the COLLIER library function AddNewCache_cll, and is primed by evaluating the compiled library at random values of the xi several times before returning a CollierCompiledFunction.

ExamplesExamplesopen allclose all

Basic Examples  (3)Basic Examples  (3)

Compile for evaluation with the COLLIER library:

In[1]:=
Click for copyable input
Out[1]=

Evaluate it:

In[2]:=
Click for copyable input
Out[2]=

Generate an expression with LoopIntegrate:

In[1]:=
Click for copyable input
Out[1]=

Apply Evaluate to insert the definition of int before compilation:

In[2]:=
Click for copyable input
Out[2]=

Make a plot:

In[3]:=
Click for copyable input
Out[3]=

Loop integral depends explicitly on :

In[1]:=
Click for copyable input
Out[1]=

Apply SeparateUV to expressions depending explicitly on and ϵ to obtain the limiting behavior of expr and to extract the UV divergent parts out of Passarino-Veltman functions:

In[2]:=
Click for copyable input
Out[2]=
In[3]:=
Click for copyable input
Out[3]=