Changeset cfecd2 in git
- Timestamp:
- Aug 12, 2011, 5:09:01 PM (12 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'f875bbaccd0831e36aaed09ff6adeb3eb45aeb94')
- Children:
- 94a065cc1eef470efefb950abf185f50c06ba20d
- Parents:
- a374b8bab94e13d254d807da4110c48b626fe5ab
- git-author:
- Hans Schoenemann <hannes@mathematik.uni-kl.de>2011-08-12 17:09:01+02:00
- git-committer:
- Mohamed Barakat <mohamed.barakat@rwth-aachen.de>2011-11-09 13:22:43+01:00
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/iparith.cc
ra374b8 rcfecd2 3587 3587 int dummy; 3588 3588 poly p=(poly)v->Data(); 3589 if (p!=NULL) res->data = (char *) pLDeg(p,&dummy,currRing);3589 if (p!=NULL) res->data = (char *)currRing->pLDeg(p,&dummy,currRing); 3590 3590 else res->data=(char *)-1; 3591 3591 return FALSE; … … 3598 3598 int i; 3599 3599 for(i=IDELEMS(I)-1;i>=0;i--) 3600 if (I->m[i]!=NULL) d=si_max(d,(int) pLDeg(I->m[i],&dummy,currRing));3600 if (I->m[i]!=NULL) d=si_max(d,(int)currRing->pLDeg(I->m[i],&dummy,currRing)); 3601 3601 res->data = (char *)(long)d; 3602 3602 return FALSE; … … 3610 3610 ring origR = currRing; 3611 3611 ring tempR = rCopy(origR); 3612 tempR->ringtype = 0; tempR->ch = 0; 3612 coeffs new_cf=nInitChar(n_Q,NULL); 3613 nKillChar(tempR->cf); 3614 tempR->cf=new_cf; 3613 3615 rComplete(tempR); 3614 3616 ideal vid = (ideal)v->Data(); … … 3660 3662 } 3661 3663 else 3662 p=singclap_det(m );3664 p=singclap_det(m,currRing); 3663 3665 res ->data = (char *)p; 3664 3666 return FALSE; … … 3670 3672 i=m->rows();j=m->cols(); 3671 3673 if(i==j) 3672 res->data = (char *)(long)singclap_det_i(m );3674 res->data = (char *)(long)singclap_det_i(m,currRing); 3673 3675 else 3674 3676 { … … 3686 3688 { 3687 3689 matrix m=idModule2Matrix(idCopy(I)); 3688 p=singclap_det(m );3690 p=singclap_det(m,currRing); 3689 3691 idDelete((ideal *)&m); 3690 3692 } … … 3703 3705 ring origR = currRing; 3704 3706 ring tempR = rCopy(origR); 3705 tempR->ringtype = 0; tempR->ch = 0; 3707 coeffs new_cf=nInitChar(n_Q,NULL); 3708 nKillChar(tempR->cf); 3709 tempR->cf=new_cf; 3706 3710 rComplete(tempR); 3707 3711 ideal vid = (ideal)v->Data(); 3708 3712 int i = idPosConstant(vid); 3709 if ((i != -1) && (n IsUnit(pGetCoeff(vid->m[i]))))3713 if ((i != -1) && (n_IsUnit(pGetCoeff(vid->m[i]),currRing->cf))) 3710 3714 { /* ideal v contains unit; dim = -1 */ 3711 3715 res->data = (char *)-1; … … 3811 3815 intvec *v=NULL; 3812 3816 singclap_factorize_retry=0; 3813 ideal f=singclap_factorize((poly)(u->CopyD()), &v, 0 );3817 ideal f=singclap_factorize((poly)(u->CopyD()), &v, 0,currRing); 3814 3818 if (f==NULL) return TRUE; 3815 3819 ivTest(v); … … 3853 3857 int i; 3854 3858 poly p=NULL,po=NULL; 3855 int rk=id RankFreeModule(I);3859 int rk=id_RankFreeModule(I,currRing); 3856 3860 if (w==NULL) 3857 3861 { … … 3875 3879 { 3876 3880 // now po!=NULL, p!=NULL 3877 int d=( pFDeg(po,currRing)-(*w)[pGetComp(po)-1] -pFDeg(p,currRing)+(*w)[i-1]);3881 int d=(currRing->pFDeg(po,currRing)-(*w)[pGetComp(po)-1] - currRing->pFDeg(p,currRing)+(*w)[i-1]); 3878 3882 if (d==0) 3879 3883 d=pLmCmp(po,p); … … 3899 3903 ring origR = currRing; 3900 3904 ring tempR = rCopy(origR); 3901 tempR->ringtype = 0; tempR->ch = 0; 3905 coeffs new_cf=nInitChar(n_Q,NULL); 3906 nKillChar(tempR->cf); 3907 tempR->cf=new_cf; 3902 3908 rComplete(tempR); 3903 3909 ideal vid = (ideal)v->Data(); … … 4031 4037 static BOOLEAN jjIMPART(leftv res, leftv v) 4032 4038 { 4033 res->data = (char *)n ImPart((number)v->Data());4039 res->data = (char *)n_ImPart((number)v->Data(),currRing->cf); 4034 4040 return FALSE; 4035 4041 } … … 4192 4198 else 4193 4199 { 4194 #if !defined(OM_NDEBUG) && !defined(NDEBUG) 4195 omCheckBin(rnumber_bin); 4196 #endif 4197 number z=(number)omAllocBin(rnumber_bin); 4200 struct snumber_dummy 4201 { 4202 mpz_t z; 4203 mpz_t n; 4204 #if defined(LDEBUG) 4205 int debug; 4206 #endif 4207 BOOLEAN s; 4208 }; 4209 typedef struct snumber_dummy *number_dummy; 4210 4211 number_dummy z=(number)omAlloc(sizeof(snumber_dummy)); 4198 4212 #if defined(LDEBUG) 4199 4213 z->debug=123456; … … 4201 4215 z->s=3; 4202 4216 mpz_init_set_si(z->z,d); 4203 return z;4217 return (number)z; 4204 4218 } 4205 4219 } … … 4311 4325 { 4312 4326 number n,i; i=(number)v->Data(); 4313 if (rField_is_Zp(currRing)) 4314 { 4315 n=n_Init(n_Int(i,currRing->cf),coeffs_BIGINT); 4316 } 4317 else if (rField_is_Q(currRing)) n=nlBigInt(i); 4318 #ifdef HAVE_RINGS 4319 else if (rField_is_Ring_Z(currRing) || rField_is_Ring_ModN(currRing) || rField_is_Ring_PtoM(currRing)) n=nlMapGMP(i); 4320 else if (rField_is_Ring_2toM(currRing)) n=n_Init((unsigned long) i,coeffs_BIGINT); 4321 #endif 4327 nMapFunc nMap=n_SetMap(currRing->cf,coeffs_BIGINT); 4328 if (nMap!=NULL) 4329 n=nMap(i,currRing->cf,coeffs_BIGINT); 4322 4330 else goto err; 4323 4331 res->data=(void *)n; … … 4352 4360 { 4353 4361 poly p=(poly)v->Data(); 4354 res->data=(char *)( p==NULL ? -1 : pFDeg(p,currRing) );4362 res->data=(char *)( p==NULL ? -1 : currRing->pFDeg(p,currRing) ); 4355 4363 return FALSE; 4356 4364 } … … 4405 4413 number i=pGetCoeff(p); 4406 4414 number n; 4407 if (rField_is_Zp()) 4408 { 4409 n=n_Init(npInt(i,currRing), coeffs_BIGINT); 4410 } 4411 else if (rField_is_Q(currRing)) n=nlBigInt(i); 4412 #ifdef HAVE_RINGS 4413 else if (rField_is_Ring_Z() || rField_is_Ring_ModN() || rField_is_Ring_PtoM()) 4414 n=nlMapGMP(i); 4415 else if (rField_is_Ring_2toM()) 4416 n=n_Init((unsigned long) i, coeffs_BIGINT); 4417 #endif 4415 nMapFunc nMap=n_SetMap(currRing->cf,coeffs_BIGINT); 4416 if (nMap!=NULL) 4417 n=nMap(i,currRing->cf,coeffs_BIGINT); 4418 4418 else goto err; 4419 4419 res->data=(void *)n; … … 4521 4521 static BOOLEAN jjREPART(leftv res, leftv v) 4522 4522 { 4523 res->data = (char *)n RePart((number)v->Data());4523 res->data = (char *)n_RePart((number)v->Data(),currRing->cf); 4524 4524 return FALSE; 4525 4525 } … … 4628 4628 intvec *v=NULL; 4629 4629 singclap_factorize_retry=0; 4630 ideal f=singclap_sqrfree((poly)(u->CopyD()) );4630 ideal f=singclap_sqrfree((poly)(u->CopyD()),currRing); 4631 4631 if (f==NULL) 4632 4632 return TRUE; … … 5114 5114 { 5115 5115 number n=(number)u->Data(); 5116 res->data=(char *)(long)n_Int(n,currRing );5116 res->data=(char *)(long)n_Int(n,currRing->cf); 5117 5117 return FALSE; 5118 5118 } … … 5496 5496 ring origR = currRing; 5497 5497 ring tempR = rCopy(origR); 5498 tempR->ringtype = 0; tempR->ch = 0; 5498 coeffs new_cf=nInitChar(n_Q,NULL); 5499 nKillChar(tempR->cf); 5500 tempR->cf=new_cf; 5499 5501 rComplete(tempR); 5500 5502 ideal uid = (ideal)u->Data(); … … 5601 5603 static BOOLEAN jjJET_P_IV(leftv res, leftv u, leftv v, leftv w) 5602 5604 { 5603 short *iw=iv2array((intvec *)w->Data() );5605 short *iw=iv2array((intvec *)w->Data(),currRing); 5604 5606 res->data = (char *)ppJetW((poly)u->Data(),(int)(long)v->Data(),iw); 5605 5607 omFreeSize((ADDRESS)iw,(currRing->N+1)*sizeof(short)); … … 5636 5638 { 5637 5639 /* true for fields and Z, false otherwise */ 5638 if (rField_is_Ring_PtoM( )) return FALSE;5639 if (rField_is_Ring_2toM( )) return FALSE;5640 if (rField_is_Ring_ModN( )) return FALSE;5640 if (rField_is_Ring_PtoM(currRing)) return FALSE; 5641 if (rField_is_Ring_2toM(currRing)) return FALSE; 5642 if (rField_is_Ring_ModN(currRing)) return FALSE; 5641 5643 return TRUE; 5642 5644 } … … 5965 5967 assume(currRing->extRing!=NULL); 5966 5968 lnumber n=(lnumber)pGetCoeff(p); 5967 ringvar=-p_Var(n->z,currRing-> extRing);5969 ringvar=-p_Var(n->z,currRing->cf->extRing); 5968 5970 } 5969 5971 if(ringvar==0) -
libpolys/coeffs/coeffs.h
ra374b8 rcfecd2 601 601 } 602 602 603 static inline number n_RePart(number i, const coeffs cf) 604 { 605 assume(cf != NULL); assume(cf->cfRePart!=NULL); 606 return cf->cfRePart(i,cf); 607 } 608 static inline number n_ImPart(number i, const coeffs cf) 609 { 610 assume(cf != NULL); assume(cf->cfImPart!=NULL); 611 return cf->cfImpart(i,cf); 612 } 613 603 614 /// returns TRUE, if r is not a field and r has non-trivial units 604 615 static inline BOOLEAN nCoeff_has_Units(const coeffs r) … … 702 713 703 714 // Missing wrappers for: (TODO: review this?) 704 // cfIntMod, cfRe Part, cfImPart, cfRead, cfName, cfInit_bigint715 // cfIntMod, cfRead, cfName, cfInit_bigint 705 716 // HAVE_RINGS: cfDivComp, cfExtGcd... 706 717
Note: See TracChangeset
for help on using the changeset viewer.