On 1/3/2022 1:36 AM,
clicl...@freenet.de wrote:
>
>> Here it is again:
>>
>> <
https://12000.org/my_notes/CAS_integration_tests/reports/summer_2021/test_cases/10_Hebisch/report.htm>
>>
>> They are numbers { 833, 975, 2446, 3878, 5066, 5285, 5642, 8482 }
>>
>> Here they are
>>
>> integrate(((4*exp(x^2)-4*x)*log(exp(x)*exp(x^2)-exp(x)*x)*log(log(exp(x)*exp(x^2)-exp(x)*x))+(8*x+4)*exp(x^2)-
>> 4*x-4)*(exp(x)*log(log(exp(x)*exp(x^2)-exp(x)*x)))^(2/9)/(9*exp(x^2)-9*x)/log(exp(x)*exp(x^2)-exp(x)*x)/log(lo
>> g(exp(x)*exp(x^2)-exp(x)*x)),x, algorithm="giac")
>>
>> ----------------
>>
>
> This one was calling GIAC, not FriCAS. Also no result or error message
> is shown.
>
opps, copied the wrong one for the first integral. here it is
===============
integrate(((4*exp(x^2)-4*x)*log(exp(x)*exp(x^2)-exp(x)*x)*log(log(exp(x)*exp(x^2)-exp(x)*x))+(8*x+4)*exp(x^2)-
4*x-4)*(exp(x)*log(log(exp(x)*exp(x^2)-exp(x)*x)))^(2/9)/(9*exp(x^2)-9*x)/log(exp(x)*exp(x^2)-exp(x)*x)/log(lo
g(exp(x)*exp(x^2)-exp(x)*x)),x, algorithm="fricas")
[Out]
Exception raised: TypeError >> Error detected within library code: integrate: implementation incomplete (co
nstant residues)
============
>>
>> [...]
>>
>> integrate((6*exp(4)*log(x)-2*exp(4)^2+(6-4*x)*exp(4)-2*x^2+6*x)*exp(1/3*log((-3*x*log(x)+x*exp(4)+x^2)/(x+exp(
>> 4)))-1)*exp(2*exp(1/3*log((-3*x*log(x)+x*exp(4)+x^2)/(x+exp(4)))-1))/((9*x*exp(4)+9*x^2)*log(x)-3*x*exp(4)^2-6
>> *x^2*exp(4)-3*x^3),x, algorithm="fricas")
>>
>> Exception raised: TypeError >> Error detected within library code: do_alg_rde: unimplemented kernel
>>
>> ----------------------------------
>>
>> [...]
>>
>> integrate(((-log(exp(x)*x)+x+9)*((-25*log(exp(x)*x)+200)/x)^(1/2)-2*log(exp(x)*x)+16)*exp(((-25*log(exp(x)*x)+
>> 200)/x)^(1/2))/(2*x^2*log(exp(x)*x)-16*x^2),x, algorithm="fricas")
>>
>> Exception raised: TypeError >> Error detected within library code: do_alg_rde: unimplemented kernel
>>
>> -------------------------------
>>
>
> I am seeing those "do_alg_rde: unimplemented kernel" messages for the
> first time, where I take "rde" to mean Risch Differential Equation.
> Apparently, the rde-solver of FriCAS may fail for mixed transcendental-
> algebraic integrands. Indeed, the first integrand involves:
>
> (- x*(3*LN(x)/(x + #e^4) - 1))^(1/3)
>
> while the second one contains:
>
> SQRT((8 - LN(x))/x - 1)
>
> Martin.
>
The implementation of do_alg_rde starts at line 1217 in this file
https://github.com/fricas/fricas/blob/master/src/algebra/intpar.spad
Here is the full function
===================
do_alg_rde(fp : F, lg : List F, x : SE, k : K, lk : LK,
ext : (LK, LF) -> L_Param_F,
logi : (LK, LF) -> Param_Rec_QF) : L_Param_F ==
if #lg = 1 then
cc := lg(1)/fp
if D(cc, x) = 0 then
return [[-cc, [1]]]
is?(k, 'nthRoot) and not(member?(k, kernels(fp))) =>
do_alg_rde0(fp, lg, x, k, lk, ext, logi)
k1 := kmax(lk)
symbolIfCan(k1) case SE =>
res1 := param_RDE(fp, lg, k1, k)$PureAlgebraicIntegration(R, F, F)
n := #lg
part1 : L_Param_F := [[-be.ratpart, be.coeffs]
for be in res1.particular]
part2 : L_Param_F := [[f, new(n, 0)$Vector(F)] for f in res1.basis]
concat(part1, part2)
has?(operator k1, ALGOP) =>
rec := primitiveElement(k1::F, k::F
)$FunctionSpacePrimitiveElement(R, F)
y := rootOf(rec.prim)
ky := retract(y)@K
fp1 := eval(fp, [k1, k], [(rec.pol1) y, (rec.pol2) y])
lg1 := [eval(g, [k1, k], [(rec.pol1) y, (rec.pol2) y]) for g in lg]
res1 := do_alg_rde(fp1, lg1, x, ky, [kk for kk in lk | kk ~= k1],
ext, logi)
[[eval(be.ratpart, ky, rec.primelt), be.coeffs] for be in res1]
error "do_alg_rde: unimplemented kernel"
==============
--Nasser