Changeset 061eacd in git


Ignore:
Timestamp:
Jan 24, 2017, 11:49:00 AM (6 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', '5bec8f88c9ee2573d328cf7c3aff2bcb301d2395')
Children:
2c951e51bb9a846854a2753ea95e29e2ca4d2b41
Parents:
9ccaaf932b4894e5b87bdbc89ad0e50527144dac
Message:
opt: singclap_gcd_and_divide
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libpolys/polys/clapsing.cc

    r9ccaaf r061eacd  
    164164    return res;
    165165  }
     166  if (p_IsConstant(g, r))
     167  {
     168    coeffs cf=r->cf;
     169    number G=pGetCoeff(g);
     170    G=n_Copy(G,cf);
     171    if(n_IsOne(G,cf)) return p_NSet(G,r);;
     172    poly ff=f;
     173    do
     174    {
     175      number n=n_SubringGcd(G,pGetCoeff(ff),cf);
     176      n_Delete(&G,cf);
     177      G=n;
     178      if (n_IsOne(G,cf)) break;
     179      pIter(ff);
     180    } while(ff!=NULL);
     181    if(n_IsOne(G,cf)) return p_NSet(G,r);
     182    f=p_Div_nn(f,G,r); p_Normalize(f,r);
     183    g=p_Div_nn(g,G,r); p_Normalize(g,r);
     184    return p_NSet(G,r);
     185  }
     186  else if (p_IsConstant(f, r))
     187  {
     188    coeffs cf=r->cf;
     189    number G=pGetCoeff(f);
     190    G=n_Copy(G,cf);
     191    if(n_IsOne(G,cf)) return p_NSet(G,r);;
     192    poly ff=g;
     193    do
     194    {
     195      number n=n_SubringGcd(G,pGetCoeff(ff),cf);
     196      n_Delete(&G,cf);
     197      G=n;
     198      if (n_IsOne(G,cf)) break;
     199      pIter(ff);
     200    } while(ff!=NULL);
     201    if(n_IsOne(G,cf)) return p_NSet(G,r);
     202    f=p_Div_nn(f,G,r);
     203    g=p_Div_nn(g,G,r);
     204    return p_NSet(G,r);
     205  }
     206  if ((pNext(f)==NULL)||(pNext(g)==NULL)) printf("L");
    166207
    167208  Off(SW_RATIONAL);
Note: See TracChangeset for help on using the changeset viewer.