transcendental integration regression

9 views
Skip to first unread message

Qian Yun

unread,
Aug 21, 2022, 9:45:48 AM8/21/22
to fricas-devel
There is a regression caught by Nasser:

https://12000.org/my_notes/CAS_integration_tests/reports/summer_2022/REGRESSION_REPORTS/fricas/reportsection10.htm

integrate(((x^2-3*x-4)*log(1+x)+((-x^3+3*x^2+4*x)*exp(x+7)+3*x^2-10*x-8)*log(x)+(-x^2+3*x+4)*exp(x+7)+x^3-4*x^2-5*x)/(x^3-3*x^2-4*x),x)

It returns integral unevaluated instead of giving correct answer.

Git bisect (via fricas0-repo) gives commit
c6039c20b834990ca4db708cf5e4e8e53e605b78, which is
"More polylog cases".

- Qian

Waldek Hebisch

unread,
Aug 21, 2022, 4:07:54 PM8/21/22
to fricas...@googlegroups.com
On Sun, Aug 21, 2022 at 09:43:55PM +0800, Qian Yun wrote:
> There is a regression caught by Nasser:
>
> https://12000.org/my_notes/CAS_integration_tests/reports/summer_2022/REGRESSION_REPORTS/fricas/reportsection10.htm
>
> integrate(((x^2-3*x-4)*log(1+x)+((-x^3+3*x^2+4*x)*exp(x+7)+3*x^2-10*x-8)*log(x)+(-x^2+3*x+4)*exp(x+7)+x^3-4*x^2-5*x)/(x^3-3*x^2-4*x),x)
>
> It returns integral unevaluated instead of giving correct answer.

Yes, thanks for info. This can be simplifed to

integrate(D(log(x)*log(x + 1), x), x)

> Git bisect (via fricas0-repo) gives commit
> c6039c20b834990ca4db708cf5e4e8e53e605b78, which is
> "More polylog cases".

Yes, error is in polylog_int in intpar.spad. Trouble is that
current integrator is doing recursion kernel-by-kernel while
such things are easier when working simultanously with all
relevant kernels. Note that

D(log(x)*log(x + 1), x) = (1/x)*log(x+1) + (1/(x+1))*log(x)

(1/x)*log(x+1) should integrate to dilog. More generally,
we would like to do

(a/x)*log(x+1) + (b/(x+1))*log(x)

which has elementary integral only when a = b and otherwise
needs dilog.

--
Waldek Hebisch
Reply all
Reply to author
Forward
0 new messages