# A question about definite integrals and timing

I need to integrate the expression G given below:

R = {Rx, Ry, Rz};
b = {bx, by, bz};
r = Sqrt[(s*b - R).(s*b - R)];
K = Exp[-r/L]/r;
G = Simplify[-K*(1/r + 1/L)*1/r*b.(s*b - R)];


If I use:

Integrate[G,{s,0,1}]


it takes quite a long time; instead if I use:

int = Integrate[G, s]
Simplify[(int /. s -> 1) - (int /. s -> 0)]


it takes less than a second.

Why is it so?

-
Closely related: What exactly does GenerateConditions do? –  Jens Apr 29 '14 at 15:46

Since this is a fine answer (and I upvoted) I'll post this as a comment. One can often get improvements by giving assumptions and/or requesting that no conditions be generated. In this example that might be something like Integrate[G, {s, 0, 1}, GenerateConditions -> False, Assumptions -> {Thread[Variables[G] > 0]}] –  Daniel Lichtblau Apr 29 '14 at 15:07