Large increase in integrate result leaf size after version 9. Looking for common cause
In general, it can be quite hard to determine why Integrate
does what it does. There are too many competing rules, and it's tricky to make the best rule (assuming even everyone agrees on which one is best) fire at the right time.
The good news is that in our internal development build, this issue appears to be fixed.
In[19]:= Integrate[Tan[x]/Sqrt[1 + Sec[x]^3], x] // LeafCount
Out[19]= 296
In[20]:= Integrate[ArcTan[Sqrt[-1 + Sec[x]]]*Sin[x], x] // LeafCount
Out[20]= 285
In[21]:= Integrate[(1 + x^2)/((1 - x^2)*Sqrt[1 + x^4]), x] // LeafCount
Out[21]= 36
In[22]:= Integrate[(1 - x^2)/((1 + x^2)*Sqrt[1 + x^4]), x] // LeafCount
Out[22]= 40
I've just run the Integration regression tests and added 11.3. This result below confirms the answer above.
The average leaf size of 11.3 Integrate result is much smaller than in 11.2. But it is still over 3 times as large as in version 9.0. But it is much better than in 11.2 which was over 6 times as large.
Found 146 Integrals in the test suite in which version 11.3 generate result at least 5 times as large as in version 9.0. This is down from 260 integrals in version 11.2
This below is average (normalized) leaf size. Normalized against optimal size. This means 11.3 generates, on average, result which is 6.3 as large as the optimal result.
This is average of the actual leaf size. (not normalized).
Also Found 27 integrals which now fails in 11.3 but did not fail in 11.2.
11.3 Integrate was a little faster than 11.2 on same PC
Full report can be found here