antispam@math.uni.wroc.pl schrieb:   
   >   
   > clicliclic@freenet.de wrote:   
   > >   
   > > "Nasser M. Abbasi" schrieb:   
   > > >   
   > > > On 4/1/2018 2:37 PM, clicliclic@freenet.de wrote:   
   > > > >   
   > > > > Here is another "moderately-sized square-root pseudo-elliptic integral   
   > > > > on which FriCAS is still known to fail".   
   > > > >   
   > > > > Being confronted with:   
   > > > >   
   > > > > setSimplifyDenomsFlag(true)   
   > > > >   
   > > > > integrate((x^2 + 2*x - 3)/((x^4 - 8*x^3 + 94*x^2 + 552*x + 657)   
   > > > > *sqrt(x^3 - 15*x - 22)), x)   
   > > > >   
   > > > > the current web-interface version 1.3.2 responds with:   
   > > > >   
   > > > >>> Error detected within library code:   
   > > > > Not integrable (provided residues have no relations)   
   > > > >   
   > > > > Why can't FriCAS establish non-integrability here?   
   > > > >   
   > > >   
   > > > FYI, same error shows up in Fricas 1.3.3 on Linux.   
   > > >   
   >    
   > > So this failure should be related to limitations of results from   
   > > torsionIfCan() when q(z) (whatever this square-free thingy represents:   
   > > can a polynomial be doubly-transitive?) has degree > two. The   
   > > implementation of torsionIfCan() resides in another source file   
   > > (presumably pfo.spad).   
   > >   
   > > I think NOTI should be improved to inform the user why FriCAS cannot   
   > > handle his integral.   
   >   
   > I am not sure what more FriCAS could say. The message is:   
   >   
   > Not integrable (provided residues have no relations)   
   >   
   > Should the message say that 'relations' above mean linear   
   > dependence over rationals? Core problem here is that   
   > FriCAS has kind of "virtual integral", namely log-like   
   > terms (divisors) and we want to convert virtal thing into   
   > a real one. For single term it is done by 'torsionIfCan()',   
   > it decides if the term is integrable (that is corresponds to   
   > log of algebraic function) or not.   
   > However, there is potential possiblity that two (or more)   
   > nonintegrable terms combine into integrable one. Trager   
   > proved that when residues are linearly independent over   
   > rationals then the sum is integrable if and only if   
   > each term is integrable. So, if we know that residues   
   > are linearly independent over rationals, then after finding   
   > a nonintegrable term we can declare the integral as   
   > nonelementary. If we _know_ linear relation betwen   
   > residues we can use it to combine terms and get smaller   
   > number of terms.   
   >   
   > So the problem here is to determine structure of linear   
   > space over ratinals spanned by residues. FriCAS knows   
   > that residues are roots of Trager double resultant.   
   > However, the only known method to determine linear   
   > dependencies between roots seem to be construction of   
   > the splitting field. This is rather heavy process   
   > involving several factorizations of polynomials   
   > with coefficients in algebraic extensions.   
   >   
   > One problem is that sum of roots gives one of coefficients   
   > of polynomial. So if coefficients are rational we   
   > get at least one relation. Paradoxicaly, the   
   > most troblesome case is when sum of roots is 0   
   > (the trace0 case). For polynomial of degree 2 in   
   > such case we can note that one root, call it a1, is   
   > irrational (because polynomial is irreducible) and   
   > the second root a2 satisfies a2 = -a1. Clearly,   
   > there can be no more linear relations over rationals.   
   >   
   > Doubly transitive above is about Galois group of q(z).   
   > If Galois group is doubly transitive, then one can   
   > take a shortcut and combine two terms. If such   
   > combination is integrable one can gets whole interal.   
   > If not in doubly transitve case the function is   
   > not integrable. Theoreticaly assuming that Galois group   
   > is doubly transitive is nice condtion, but computing   
   > Galois group seem to be almost as hard as computing   
   > splitting space.   
   >   
   > > The deadly failure reported recently in "elementarily integrable or   
   > > not?" is most likely related to torsion too.   
   >   
   > Well, the limitation above exist even if torsionIfCan()   
   > works correctly. The failure from the other post most   
   > likely means a bug in torsionIfCan().   
   >   
      
   Thanks. In view of your explanation I suggest to update the error   
   message from the ridiculing:   
      
   NOTI ==> error "Not integrable (provided residues have no relations)"   
      
   to an honest:   
      
   NOTI ==> error "integrate: implementation incomplete (relations among   
   zeros of residue poly)"   
      
   or more simply:   
      
   NOTI ==> error "integrate: implementation incomplete (relations among   
   residues)"   
      
   This would also correspond better with the other messages related to   
   unimplemented parts.   
      
   Martin.   
      
   PS: The integral from the other post is the special case w = 2*SQRT(2)   
    + 3 of:   
      
   INT(2*SQRT(w)*((SQRT(w - 1) - 1)*x + w)/((x + SQRT(w))*(x + SQRT(w)   
   *(SQRT(w - 1) - SQRT(w)))*SQRT(x*(x - 1)*(x - w))), x)   
    = 2/(SQRT(w - 1) - SQRT(w))*ATANH((SQRT(w - 1) - SQRT(w))*(x - w)   
   /SQRT(x*(x - 1)*(x - w)))   
    - 2/(SQRT(w) + 1)*ATAN((1 + SQRT(w))*x/SQRT(x*(x - 1)*(x - w)))   
      
   I have tried to find a simpler case (without roots, or at least without   
   nested roots) that fails in the same way, but couldn't find one. Could   
   this problem in torsionIfCan() even be a loophole in the finite-field   
   algorithm for determining torsion order?   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|