Changeset 0334da in git
- Timestamp:
- Aug 15, 2018, 3:29:29 PM (5 years ago)
- Branches:
- (u'spielwiese', 'a719bcf0b8dbc648b128303a49777a094b57592c')
- Children:
- 9b1bb5c6905835dc71901fe935e99adb6ea74769
- Parents:
- ca7ea8aa24a72e1d3018272972748da1f3102f6d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libpolys/polys/monomials/p_polys.cc
rca7ea8a r0334da 2596 2596 #else 2597 2597 { 2598 /* ph has al least 2 terms */ 2598 2599 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 } 2611 2629 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); 2655 2632 return n_SubringGcd(d,d2,r->cf); 2656 2633 }
Note: See TracChangeset
for help on using the changeset viewer.