Changeset 0334da in git


Ignore:
Timestamp:
Aug 15, 2018, 3:29:29 PM (5 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'a719bcf0b8dbc648b128303a49777a094b57592c')
Children:
9b1bb5c6905835dc71901fe935e99adb6ea74769
Parents:
ca7ea8aa24a72e1d3018272972748da1f3102f6d
Message:
simplify p_InitContent
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libpolys/polys/monomials/p_polys.cc

    rca7ea8a r0334da  
    25962596#else
    25972597{
     2598  /* ph has al least 2 terms */
    25982599  number d=pGetCoeff(ph);
    2599   int s;
    2600   int s2=-1;
    2601   if(rField_is_Q(r))
    2602   {
    2603     if  (SR_HDL(d)&SR_INT) return d;
    2604     s=mpz_size1(d->z);
    2605   }
    2606   else
    2607     s=n_Size(d,r->cf);
    2608   number d2=d;
    2609   loop
    2610   {
     2600  int s=n_Size(d,r->cf);
     2601  pIter(ph);
     2602  number d2=pGetCoeff(ph);
     2603  int s2=n_Size(d2,r->cf);
     2604  pIter(ph);
     2605  if (ph==NULL)
     2606  {
     2607    if (s<s2) return n_Copy(d,r->cf);
     2608    else      return n_Copy(d2,r->cf);
     2609  }
     2610  do
     2611  {
     2612    number nd=pGetCoeff(ph);
     2613    int ns=n_Size(nd,r->cf);
     2614    if (ns<=2)
     2615    {
     2616      s2=s;
     2617      d2=d;
     2618      d=nd;
     2619      s=ns;
     2620      break;
     2621    }
     2622    else if (ns<s)
     2623    {
     2624      s2=s;
     2625      d2=d;
     2626      d=nd;
     2627      s=ns;
     2628    }
    26112629    pIter(ph);
    2612     if(ph==NULL)
    2613     {
    2614       if (s2==-1) return n_Copy(d,r->cf);
    2615       break;
    2616     }
    2617     if (rField_is_Q(r))
    2618     {
    2619       if (SR_HDL(pGetCoeff(ph))&SR_INT)
    2620       {
    2621         s2=s;
    2622         d2=d;
    2623         s=0;
    2624         d=pGetCoeff(ph);
    2625         if (s2==0) break;
    2626       }
    2627       else if (mpz_size1((pGetCoeff(ph)->z))<=s)
    2628       {
    2629         s2=s;
    2630         d2=d;
    2631         d=pGetCoeff(ph);
    2632         s=mpz_size1(d->z);
    2633       }
    2634     }
    2635     else
    2636     {
    2637       int ns=n_Size(pGetCoeff(ph),r->cf);
    2638       if (ns<=3)
    2639       {
    2640         s2=s;
    2641         d2=d;
    2642         d=pGetCoeff(ph);
    2643         s=ns;
    2644         if (s2<=3) break;
    2645       }
    2646       else if (ns<s)
    2647       {
    2648         s2=s;
    2649         d2=d;
    2650         d=pGetCoeff(ph);
    2651         s=ns;
    2652       }
    2653     }
    2654   }
     2630  }
     2631  while(ph!=NULL);
    26552632  return n_SubringGcd(d,d2,r->cf);
    26562633}
Note: See TracChangeset for help on using the changeset viewer.