Integrate2

Description

Integrate2 is like Integrate, but : Integrate2[a_Plus, b__] := Map[Integrate2[#, b]&, a] ( more linear algebra and partial fraction decomposition is done) Integrate2[f[x] DeltaFunction[x], x] -> f[0] Integrate2[f[x] DeltaFunction[x0-x], x] -> f[x0]. Integrate2[f[x] DeltaFunction[a + b x], x] -> Integrate[f[x] (1/Abs[b]) DeltaFunction[a/b + x], x], where abs[b] -> b, if b is a Symbol, and if b = -c, then abs[-c] -> c, i.e., the variable contained in b is supposed to be positive.  (π^2) is replaced by 6 Zeta2. Integrate2[1/(1-y),{y,x,1}] is intepreted as distribution, i.e. as Integrate2[-1/(1-y)],{y, 0, x}] -> Log[1-y]. Integrate2[1/(1-x),{x,0,1}] -> 0.

See also:  DeltaFunction, Integrate3, SumS, SumT.

NOTE: Since Integrate2 does do a reordering and partial fraction decomposition before calling the integral table of Integrate3 it will in general be slower compared to Integrate3 for sums of integrals. I.e., if the integrand has already an expanded form and if partial fraction decomposition is not necessary it is more effective to use Integrate3.

Examples

Integrate2[Log[1 + x] Log[x]/(1 - x), {x, 0, 1}] // 
      Timing

Since Integrate2 uses table-look-up methods it is much faster than Mathematica's Integrate.

Integrate2[PolyLog[2, x^2], {x, 0, 1}]

Integrate2[PolyLog[3, -x], {x, 0, 1}]

Integrate2[PolyLog[3, 1/(1 + x)], {x, 0, 1}]

Integrate2[DeltaFunction[1 - x] f[x], {x, 0, 1}]

Integrate2 does integration in a Hadamard sense, i.e., (∫_0^1)f(
            x) dx  means acutally expanding the result of (∫_δ^(1 - δ))f(
            x) dx up do O(δ) and neglecting all δ-dependent terms. E.g. \(TraditionalForm\`\(\(∫\_δ\%\(1 - δ\)1/\((1 - 
                  x)\) dx\  = \ \(\(\(\(-log\) \((1 - 
                  x)\)\)\( | \_δ\%\(1 - δ\)\)\) = \(-\(log(δ)\)\) + log(1) => 
            0. \)\)\(\ \)\)\)

Integrate2[1/(1 - x), {x, 0, 1}]

In the physics literature sometimes the "+" notation is used. In FeynCalc the \(TraditionalForm\`\(\((1\/\(1 - x\))\)\_+\)\) is represented by PlusDistribution[1/(1 - x)] or just 1/(1 - x) .

Integrate2[PlusDistribution[1/(1 - x)], {x, 0, 1}]

Integrate2[PolyLog[2, 1 - x]/(1 - x)^2, {x, 0, 1}]

Integrate2[(Log[x] Log[1 + x])/(1 + x), {x, 0, 1}]

Integrate2[Log[x]^2/(1 - x), {x, 0, 1}]

Integrate2[PolyLog[2, -x]/(1 + x), {x, 0, 1}]

Integrate2[Log[x] PolyLog[2, x], {x, 0, 1}]

Integrate2[x PolyLog[3, x], {x, 0, 1}]

Integrate2[(Log[x]^2 Log[1 - x])/(1 + x), {x, 0, 
        1}]

Integrate2[
      PolyLog[2, ((x (1 - z) + z) (1 - x + x z))/z]/(1 - 
            x + x z), {x, 0, 1}]

Apart[Integrate2[x^(OPEm - 1) PolyLog[3, 1 - x], {x, 0, 1}], 
      OPEm]

Integrate2[
      x^(OPEm - 1) Log[1 - x] Log[x] Log[1 + x]/(1 + x), {x, 0, 
        1}]

%  /.  OPEm -> 2

N[%]

NIntegrate[
      x Log[1 - x] Log[x] Log[1 + x]/(1 + x), {x, 0, 1}]

Integrate2[
      x^(OPEm - 1) (PolyLog[3, ((1 - x)/(1 + x))] - 
            PolyLog[3, -((1 - x)/(1 + x))]), {x, 0, 
        1}]

DataType[OPEm, PositiveInteger]

Integrate2[
      x^(OPEm - 1) DeltaFunction[1 - x], {x, 0, 1}]

This is the polarized non-singlet spin splitting function whose first moment vanishes.

t = SplittingFunction[PQQNS]

Integrate2[t, {x, 0, 1}] // Timing

Expanding t with respect to x yields a form already suitable for Integrate3 and therefore the following is faster:

Integrate3[Expand[t, x], {x, 0, 1}] // Expand // Timing

Clear[t];

Integrate2[DeltaFunction[1 - x] f[x], {x, 0, 1}]

Integrate2[(x^5) Log[1 + x]^2, {x, 0, 1}]

N@%

NIntegrate[(x^5) Log[1 + x]^2, {x, 0, 1}]

Integrate2[x^(OPEm - 1) Log[1 + x]^2, {x, 0, 1}]