Changeset 19ad278 in git
- Timestamp:
- Mar 18, 2011, 5:55:25 PM (12 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a800fe4b3e9d37a38c5a10cc0ae9dfa0c15a4ee6')
- Children:
- 6fe9a5bbf090a5f523e34382e1d8657f5cd1a5f9
- Parents:
- 4dfb227a84690906265e2bcf49abffa98444b04b
- Location:
- Singular
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/iparith.cc
r4dfb22 r19ad278 2195 2195 static BOOLEAN jjHILBERT2(leftv res, leftv u, leftv v) 2196 2196 { 2197 #ifdef HAVE_RINGS 2198 if (rField_is_Ring_Z(currRing)) 2199 { 2200 ring origR = currRing; 2201 ring tempR = rCopy(origR); 2202 tempR->ringtype = 0; tempR->ch = 0; 2203 rComplete(tempR); 2204 ideal uid = (ideal)u->Data(); 2205 rChangeCurrRing(tempR); 2206 ideal uu = idrCopyR(uid, origR, currRing); 2207 sleftv uuAsLeftv; memset(&uuAsLeftv, 0, sizeof(uuAsLeftv)); 2208 uuAsLeftv.rtyp = IDEAL_CMD; 2209 uuAsLeftv.data = uu; uuAsLeftv.next = NULL; 2210 if (hasFlag(u, FLAG_STD)) setFlag(&uuAsLeftv,FLAG_STD); 2211 assumeStdFlag(&uuAsLeftv); 2212 Print("// NOTE: computation of Hilbert series etc. is being\n"); 2213 Print("// performed for generic fibre, that is, over Q\n"); 2214 intvec *module_w=(intvec*)atGet(&uuAsLeftv,"isHomog",INTVEC_CMD); 2215 intvec *iv=hFirstSeries(uu,module_w,currQuotient); 2216 int returnWithTrue = 1; 2217 switch((int)(long)v->Data()) 2218 { 2219 case 1: 2220 res->data=(void *)iv; 2221 returnWithTrue = 0; 2222 case 2: 2223 res->data=(void *)hSecondSeries(iv); 2224 delete iv; 2225 returnWithTrue = 0; 2226 } 2227 if (returnWithTrue) 2228 { 2229 WerrorS(feNotImplemented); 2230 delete iv; 2231 } 2232 idDelete(&uu); 2233 rChangeCurrRing(origR); 2234 rDelete(tempR); 2235 if (returnWithTrue) return TRUE; else return FALSE; 2236 } 2237 #endif 2197 2238 assumeStdFlag(u); 2198 2239 intvec *module_w=(intvec*)atGet(u,"isHomog",INTVEC_CMD); … … 3654 3695 return FALSE; 3655 3696 } 3656 rChangeCurrRing(tempR); rComplete(tempR);3697 rChangeCurrRing(tempR); 3657 3698 ideal vv = idrCopyR(vid, origR, currRing); 3658 3699 /* drop degree zero generator from vv (if any) */ … … 3824 3865 static BOOLEAN jjHILBERT(leftv res, leftv v) 3825 3866 { 3867 #ifdef HAVE_RINGS 3868 if (rField_is_Ring_Z(currRing)) 3869 { 3870 ring origR = currRing; 3871 ring tempR = rCopy(origR); 3872 tempR->ringtype = 0; tempR->ch = 0; 3873 rComplete(tempR); 3874 ideal vid = (ideal)v->Data(); 3875 rChangeCurrRing(tempR); 3876 ideal vv = idrCopyR(vid, origR, currRing); 3877 sleftv vvAsLeftv; memset(&vvAsLeftv, 0, sizeof(vvAsLeftv)); 3878 vvAsLeftv.rtyp = IDEAL_CMD; 3879 vvAsLeftv.data = vv; vvAsLeftv.next = NULL; 3880 if (hasFlag(v, FLAG_STD)) setFlag(&vvAsLeftv,FLAG_STD); 3881 assumeStdFlag(&vvAsLeftv); 3882 Print("// NOTE: computation of Hilbert series etc. is being\n"); 3883 Print("// performed for generic fibre, that is, over Q\n"); 3884 intvec *module_w=(intvec*)atGet(&vvAsLeftv,"isHomog",INTVEC_CMD); 3885 //scHilbertPoly(vv,currQuotient); 3886 hLookSeries(vv,module_w,currQuotient); 3887 idDelete(&vv); 3888 rChangeCurrRing(origR); 3889 rDelete(tempR); 3890 return FALSE; 3891 } 3892 #endif 3826 3893 assumeStdFlag(v); 3827 3894 intvec *module_w=(intvec*)atGet(v,"isHomog",INTVEC_CMD); … … 3832 3899 static BOOLEAN jjHILBERT_IV(leftv res, leftv v) 3833 3900 { 3901 #ifdef HAVE_RINGS 3902 if (rField_is_Ring_Z(currRing)) 3903 { 3904 Print("// NOTE: computation of Hilbert series etc. is being\n"); 3905 Print("// performed for generic fibre, that is, over Q\n"); 3906 } 3907 #endif 3834 3908 res->data=(void *)hSecondSeries((intvec *)v->Data()); 3835 3909 return FALSE; … … 5383 5457 static BOOLEAN jjHILBERT3(leftv res, leftv u, leftv v, leftv w) 5384 5458 { 5459 intvec *wdegree=(intvec*)w->Data(); 5460 if (wdegree->length()!=pVariables) 5461 { 5462 Werror("weight vector must have size %d, not %d", 5463 pVariables,wdegree->length()); 5464 return TRUE; 5465 } 5466 #ifdef HAVE_RINGS 5467 if (rField_is_Ring_Z(currRing)) 5468 { 5469 ring origR = currRing; 5470 ring tempR = rCopy(origR); 5471 tempR->ringtype = 0; tempR->ch = 0; 5472 rComplete(tempR); 5473 ideal uid = (ideal)u->Data(); 5474 rChangeCurrRing(tempR); 5475 ideal uu = idrCopyR(uid, origR, currRing); 5476 sleftv uuAsLeftv; memset(&uuAsLeftv, 0, sizeof(uuAsLeftv)); 5477 uuAsLeftv.rtyp = IDEAL_CMD; 5478 uuAsLeftv.data = uu; uuAsLeftv.next = NULL; 5479 if (hasFlag(u, FLAG_STD)) setFlag(&uuAsLeftv,FLAG_STD); 5480 assumeStdFlag(&uuAsLeftv); 5481 Print("// NOTE: computation of Hilbert series etc. is being\n"); 5482 Print("// performed for generic fibre, that is, over Q\n"); 5483 intvec *module_w=(intvec*)atGet(&uuAsLeftv,"isHomog",INTVEC_CMD); 5484 intvec *iv=hFirstSeries(uu,module_w,currQuotient,wdegree); 5485 int returnWithTrue = 1; 5486 switch((int)(long)v->Data()) 5487 { 5488 case 1: 5489 res->data=(void *)iv; 5490 returnWithTrue = 0; 5491 case 2: 5492 res->data=(void *)hSecondSeries(iv); 5493 delete iv; 5494 returnWithTrue = 0; 5495 } 5496 if (returnWithTrue) 5497 { 5498 WerrorS(feNotImplemented); 5499 delete iv; 5500 } 5501 idDelete(&uu); 5502 rChangeCurrRing(origR); 5503 rDelete(tempR); 5504 if (returnWithTrue) return TRUE; else return FALSE; 5505 } 5506 #endif 5385 5507 assumeStdFlag(u); 5386 5508 intvec *module_w=(intvec *)atGet(u,"isHomog",INTVEC_CMD); 5387 intvec *wdegree=(intvec*)w->Data();5388 if (wdegree->length()!=pVariables)5389 {5390 Werror("weight vector must have size %d, not %d",5391 pVariables,wdegree->length());5392 return TRUE;5393 }5394 5509 intvec *iv=hFirstSeries((ideal)u->Data(),module_w,currQuotient,wdegree); 5395 5510 switch((int)(long)v->Data()) -
Singular/table.h
r4dfb22 r19ad278 116 116 ,{D(jjHIGHCORNER), HIGHCORNER_CMD, POLY_CMD, IDEAL_CMD , NO_PLURAL |ALLOW_RING} 117 117 ,{D(jjHIGHCORNER_M), HIGHCORNER_CMD,VECTOR_CMD, MODUL_CMD , NO_PLURAL |ALLOW_RING} 118 ,{D(jjHILBERT), HILBERT_CMD, NONE, IDEAL_CMD , NO_PLURAL | NO_RING}119 ,{D(jjHILBERT), HILBERT_CMD, NONE, MODUL_CMD , NO_PLURAL | NO_RING}120 ,{D(jjHILBERT_IV), HILBERT_CMD, INTVEC_CMD, INTVEC_CMD , NO_PLURAL | NO_RING}118 ,{D(jjHILBERT), HILBERT_CMD, NONE, IDEAL_CMD , NO_PLURAL |ALLOW_RING | NO_ZERODIVISOR} 119 ,{D(jjHILBERT), HILBERT_CMD, NONE, MODUL_CMD , NO_PLURAL |ALLOW_RING | NO_ZERODIVISOR} 120 ,{D(jjHILBERT_IV), HILBERT_CMD, INTVEC_CMD, INTVEC_CMD , NO_PLURAL |ALLOW_RING | NO_ZERODIVISOR} 121 121 ,{D(jjHOMOG1), HOMOG_CMD, INT_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING} 122 122 ,{D(jjHOMOG1), HOMOG_CMD, INT_CMD, MODUL_CMD , ALLOW_PLURAL |ALLOW_RING} … … 544 544 ,{ jjWRONG2 , GCD_CMD, POLY_CMD, POLY_CMD, POLY_CMD, NO_PLURAL |NO_RING} 545 545 #endif 546 ,{D(jjHILBERT2), HILBERT_CMD, INTVEC_CMD, IDEAL_CMD, INT_CMD, NO_PLURAL | NO_RING}547 ,{D(jjHILBERT2), HILBERT_CMD, INTVEC_CMD, MODUL_CMD, INT_CMD, NO_PLURAL | NO_RING}546 ,{D(jjHILBERT2), HILBERT_CMD, INTVEC_CMD, IDEAL_CMD, INT_CMD, NO_PLURAL | ALLOW_RING | NO_ZERODIVISOR} 547 ,{D(jjHILBERT2), HILBERT_CMD, INTVEC_CMD, MODUL_CMD, INT_CMD, NO_PLURAL | ALLOW_RING | NO_ZERODIVISOR} 548 548 ,{D(jjHOMOG1_W), HOMOG_CMD, INT_CMD, IDEAL_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING} 549 549 ,{D(jjHOMOG1_W), HOMOG_CMD, INT_CMD, MODUL_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING} … … 682 682 ,{D(jjFIND3), FIND_CMD, INT_CMD, STRING_CMD, STRING_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING} 683 683 ,{D(jjFWALK3), FWALK_CMD, IDEAL_CMD, RING_CMD, DEF_CMD, INT_CMD, NO_PLURAL |ALLOW_RING} 684 ,{D(jjHILBERT3), HILBERT_CMD,INTVEC_CMD, IDEAL_CMD, INT_CMD, INTVEC_CMD, NO_PLURAL | NO_RING}685 ,{D(jjHILBERT3), HILBERT_CMD,INTVEC_CMD, MODUL_CMD, INT_CMD, INTVEC_CMD, NO_PLURAL | NO_RING}684 ,{D(jjHILBERT3), HILBERT_CMD,INTVEC_CMD, IDEAL_CMD, INT_CMD, INTVEC_CMD, NO_PLURAL | ALLOW_RING | NO_ZERODIVISOR} 685 ,{D(jjHILBERT3), HILBERT_CMD,INTVEC_CMD, MODUL_CMD, INT_CMD, INTVEC_CMD, NO_PLURAL | ALLOW_RING | NO_ZERODIVISOR} 686 686 ,{D(jjHOMOG_P_W), HOMOG_CMD, POLY_CMD, POLY_CMD, POLY_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING} 687 687 ,{D(jjHOMOG_P_W), HOMOG_CMD, VECTOR_CMD, VECTOR_CMD, POLY_CMD, INTVEC_CMD, ALLOW_PLURAL |ALLOW_RING}
Note: See TracChangeset
for help on using the changeset viewer.