Changeset ab8e53d in git
- Timestamp:
- Feb 20, 2014, 2:46:30 PM (10 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- 8ca38a76b2cb266f641e2f317363644fe3db8c67
- Parents:
- f0cd66c1f26eeb797e2b9d7e5427eefb62882e07
- git-author:
- Adi Popescu <adi_popescum@yahoo.de>2014-02-20 14:46:30+01:00
- git-committer:
- Adi Popescu <adi_popescum@yahoo.de>2014-05-05 11:08:44+02:00
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/ipassign.cc
rf0cd66c rab8e53d 755 755 if (rField_is_Ring(currRing)) 756 756 { 757 // computing over Rings: handle constant generators of id properly 757 758 if (idPosConstant(id) != -1) 758 759 { 759 WerrorS("constant in q-ideal; please modify ground field/ring instead"); 760 return TRUE; 760 mpz_t gcd; 761 if(nCoeff_is_Ring_ModN(currRing->cf) || 762 nCoeff_is_Ring_PtoM(currRing->cf) || 763 nCoeff_is_Ring_2toM(currRing->cf)) 764 { 765 // already computing mod modNumber: use gcd(modNumber,constant entry of id) 766 mpz_t newConst; 767 mpz_init(newConst); 768 mpz_set_ui(newConst, currRing->cf->cfInt(p_GetCoeff(id->m[idPosConstant(id)], currRing),currRing->cf)); 769 mpz_init(gcd); 770 mpz_gcd(gcd, currRing->cf->modNumber, newConst); 771 if(mpz_cmp_ui(gcd, 1) == 0) 772 { 773 WerrorS("constant in q-ideal is coprime to modulus in ground ring"); 774 WerrorS("Unable to create qring!"); 775 return TRUE; 776 } 777 if(nCoeff_is_Ring_PtoM(currRing->cf) || 778 nCoeff_is_Ring_2toM(currRing->cf)) 779 { 780 // modNumber is prime power: set modExponent appropriately 781 int kNew = 1; 782 mpz_t baseTokNew; 783 mpz_init(baseTokNew); 784 mpz_set(baseTokNew, currRing->cf->modBase); 785 while(mpz_cmp(gcd, baseTokNew) > 0) 786 { 787 kNew++; 788 mpz_mul(baseTokNew, baseTokNew, currRing->cf->modBase); 789 } 790 currRing->cf->modExponent = kNew; 791 mpz_set(currRing->cf->modNumber, gcd); 792 mpz_sub_ui(baseTokNew, baseTokNew, 1); 793 mpz_t dummy; 794 mpz_init(dummy); 795 mpz_set_si(dummy, sizeof(unsigned long)); 796 printf("\nmod2mMask = %i \n", currRing->cf->mod2mMask); 797 #if 0 798 if(nCoeff_is_Ring_2toM(currRing->cf)) 799 { 800 // handle shortcut for 2^m appropriately 801 if(mpz_cmp(dummy, baseTokNew) > 0) 802 { 803 idPrint(id); 804 currRing->cf->mod2mMask = mpz_get_ui(baseTokNew); 805 idPrint(id); 806 } 807 } 808 #endif 809 mpz_clear(dummy); 810 mpz_clear(baseTokNew); 811 } 812 else 813 { 814 // previously over modNumber, now over new modNumber 815 mpz_set(currRing->cf->modBase, gcd); 816 mpz_set(currRing->cf->modNumber, gcd); 817 } 818 currRing->cf->ch = mpz_get_ui(gcd); 819 mpz_clear(gcd); 820 mpz_clear(newConst); 821 } 822 else 823 { 824 // previously over Z, now over Z/m 825 mpz_t newConst; 826 mpz_init(newConst); 827 mpz_set_ui(newConst, currRing->cf->cfInt(p_GetCoeff(id->m[idPosConstant(id)], currRing), currRing->cf)); 828 currRing->cf->modExponent = 1; 829 mpz_set(currRing->cf->modBase, newConst); 830 mpz_set(currRing->cf->modNumber, newConst); 831 currRing->cf->ch = mpz_get_ui(newConst); 832 mpz_clear(newConst); 833 currRing->cf->type = n_Zn; 834 } 761 835 } 762 836 } 763 837 #endif 764 838 765 839 if (currRing->qideal!=NULL) /* we are already in a qring! */ 766 840 { -
kernel/GBEngine/kstd2.cc
rf0cd66c rab8e53d 1362 1362 strat->use_buckets = 1; 1363 1363 #endif 1364 1365 1364 // redtailBBa against T for inhomogenous input 1366 1365 if (!TEST_OPT_OLDSTD) -
kernel/GBEngine/kutil.cc
rf0cd66c rab8e53d 7913 7913 for(q=IDELEMS(Q)-1; q>=0;q--) 7914 7914 { 7915 if ((Q->m[q]!=NULL) 7916 &&(pLmEqual(r->m[l],Q->m[q]))) 7915 if ((Q->m[q]!=NULL)&&(pLmEqual(Q->m[q],r->m[l]))) 7917 7916 { 7917 #ifdef HAVE_RINGS 7918 //Also need divisibility of the leading coefficients 7919 if((!rField_is_Ring(currRing)) || (pDivisibleBy(Q->m[q],r->m[l]))) 7920 #endif 7918 7921 if (TEST_OPT_REDSB) 7919 7922 {
Note: See TracChangeset
for help on using the changeset viewer.