Changeset df8937 in git
- Timestamp:
- Nov 16, 2000, 10:54:52 AM (23 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- e7cc147e965c4ecf804be1d81593e22ca4ed57eb
- Parents:
- 84038fa065e073d715909526ba76ad3f0f0455d8
- Location:
- Singular
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/kInline.cc
r84038f rdf8937 7 7 * Author: obachman (Olaf Bachmann) 8 8 * Created: 8/00 9 * Version: $Id: kInline.cc,v 1.1 5 2000-11-14 16:04:53obachman Exp $9 * Version: $Id: kInline.cc,v 1.16 2000-11-16 09:54:49 obachman Exp $ 10 10 *******************************************************************/ 11 11 #ifndef KINLINE_CC … … 181 181 length = 0; 182 182 pLength = 0; 183 FDeg = 0; 184 is_normalized = FALSE; 183 185 } 184 186 … … 351 353 return tailRing->pFDeg(t_p, tailRing); 352 354 } 353 355 KINLINE long sTObject::SetpFDeg() 356 { 357 FDeg = this->pFDeg(); 358 return FDeg; 359 } 360 KINLINE long sTObject::GetpFDeg() const 361 { 362 assume(FDeg == this->pFDeg()); 363 return FDeg; 364 } 354 365 KINLINE long sTObject::pLDeg() 355 366 { 356 367 return ::pLDeg(GetLmTailRing(), &length, tailRing); 357 368 } 358 359 KINLINE long sTObject::SetLengthEcartReturnLDeg() 360 { 369 KINLINE long sTObject::SetDegStuffReturnLDeg() 370 { 371 FDeg = this->pFDeg(); 361 372 long d = this->pLDeg(); 362 ecart = d - this->pFDeg();373 ecart = d - FDeg; 363 374 return d; 364 375 } … … 378 389 { 379 390 assume(p != NULL); 380 ::pNorm(p); 381 if (t_p != NULL) 382 pSetCoeff0(t_p, pGetCoeff(p)); 391 if (! is_normalized) 392 { 393 ::pNorm(p); 394 if (t_p != NULL) 395 pSetCoeff0(t_p, pGetCoeff(p)); 396 is_normalized = TRUE; 397 } 383 398 } 384 399 … … 537 552 sev = p_GetShortExpVector(p, currRing); 538 553 } 554 } 555 556 KINLINE long sLObject::pLDeg() 557 { 558 poly tp = GetLmTailRing(); 559 assume(tp != NULL); 560 if (bucket != NULL) 561 { 562 int i = kBucketCanonicalize(bucket); 563 pNext(tp) = bucket->buckets[i]; 564 long ldeg = ::pLDeg(tp, &length, tailRing); 565 pNext(tp) = NULL; 566 return ldeg; 567 } 568 else 569 return ::pLDeg(tp, &length, tailRing); 570 } 571 KINLINE long sLObject::SetDegStuffReturnLDeg() 572 { 573 FDeg = this->pFDeg(); 574 long d = this->pLDeg(); 575 ecart = d - FDeg; 576 return d; 577 } 578 KINLINE long sLObject::SetLength() 579 { 580 // this can be improved 581 this->pLDeg(); 582 return length; 583 } 584 KINLINE long sLObject::MinComp() 585 { 586 poly tp = GetLmTailRing(); 587 assume(tp != NULL); 588 if (bucket != NULL) 589 { 590 int i = kBucketCanonicalize(bucket); 591 pNext(tp) = bucket->buckets[i]; 592 long m = p_MinComp(tp, tailRing); 593 pNext(tp) = NULL; 594 return m; 595 } 596 else 597 return p_MinComp(tp, tailRing); 539 598 } 540 599 -
Singular/kstd1.cc
r84038f rdf8937 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: kstd1.cc,v 1.6 2 2000-11-14 16:24:47obachman Exp $ */4 /* $Id: kstd1.cc,v 1.63 2000-11-16 09:54:50 obachman Exp $ */ 5 5 /* 6 6 * ABSTRACT: … … 100 100 pDelete(&(pNext(p1))); 101 101 (*p).ecart = pLDeg((*p).p,&((*p).length))-o; 102 p->pLength = 0; 102 103 } 103 104 else … … 133 134 LObject L= *h; 134 135 L.Copy(); 136 h->GetP(); 135 137 ret = ksReducePoly(&L, with, strat->kNoether, NULL, strat); 136 138 if (ret) … … 142 144 strat->tailRing)); 143 145 } 144 h->CanonicalizeP();145 146 enterT(*h,strat); 146 147 *h = L; … … 157 158 } 158 159 159 #if 1160 #if 0 160 161 /*2 161 162 * reduces h with elements from T choosing first possible … … 178 179 if (j > strat->tl) 179 180 { 181 if (strat->honey) pLDeg((*h).p,&((*h).length)); 180 182 return 1; 181 183 } … … 227 229 if (strat->Ll >= 0) /*- L is not empty -*/ 228 230 { 231 if (strat->honey) pLDeg((*h).p,&((*h).length)); 229 232 at = strat->posInL(strat->L,strat->Ll,(*h),strat); 230 233 if (at <= strat->Ll) … … 255 258 else 256 259 (*h).ecart = d-pFDeg((*h).p)+ei-(*h).ecart; 257 pLDeg((*h).p,&((*h).length));260 // pLDeg((*h).p,&((*h).length)); 258 261 //(*h).length = pLength((*h).p); 259 262 } … … 280 283 && ((d >= reddeg) || (pass > strat->LazyPass))) 281 284 { 285 if (strat->honey) pLDeg((*h).p,&((*h).length)); 282 286 at = strat->posInL(strat->L,strat->Ll,*h,strat); 283 287 if (at <= strat->Ll) … … 310 314 } 311 315 #else 312 313 316 int redEcart (LObject* h,kStrategy strat) 314 317 { … … 318 321 int pass = 0; 319 322 320 d = h-> pFDeg()+ h->ecart;323 d = h->GetpFDeg()+ h->ecart; 321 324 reddeg = strat->LazyDegree+d; 322 325 h->SetShortExpVector(); … … 325 328 j = kFindDivisibleByInT(strat->T, strat->sevT, strat->tl, h); 326 329 if (j < 0) 330 { 331 if (strat->honey) h->SetLength(); 327 332 return 1; 333 } 328 334 329 335 ei = strat->T[j].ecart; … … 341 347 /*- takes the first possible with respect to ecart -*/ 342 348 i++; 343 i = kFindDivisibleByInT(strat->T, strat->sevT, strat->tl, h, i); 344 if (i < 0) break; 345 if (strat->T[i].ecart < ei || (strat->T[i].ecart == ei && 346 strat->T[i].length < li)) 349 // i = kFindDivisibleByInT(strat->T, strat->sevT, strat->tl, h, i); 350 if (i > strat->tl) break; 351 if ((strat->T[i].ecart < ei || (strat->T[i].ecart == ei && 352 strat->T[i].length < li)) 353 && 354 pLmShortDivisibleBy(strat->T[i].p, strat->sevT[i], h->p, ~h->sev)) 347 355 { 348 356 // the polynomial to reduce with is now … … 364 372 if (strat->Ll >= 0) /*- L is not empty -*/ 365 373 { 366 h->SetLmCurrentRing(); 374 h->SetLmCurrRing(); 375 if (strat->honey) h->SetLength(); 376 assume(h->FDeg == h->pFDeg()); 367 377 at = strat->posInL(strat->L,strat->Ll,(*h),strat); 368 378 if (at <= strat->Ll) 369 379 { 370 380 /*- h will not become the next element to reduce -*/ 381 h->CanonicalizeP(); 371 382 enterL(&strat->L,&strat->Ll,&strat->Lmax,*h,at); 372 383 #ifdef KDEBUG … … 380 391 } 381 392 382 // now we fian nly can reduce393 // now we fianlly can reduce 383 394 doRed(h,&(strat->T[ii]),strat->fromT,strat); 384 395 strat->fromT=FALSE; … … 387 398 if (h->IsNull()) 388 399 { 389 if (h->lcm!=NULL) pLmFree( (*h).lcm);400 if (h->lcm!=NULL) pLmFree(h->lcm); 390 401 h->Clear(); 391 402 return 0; … … 394 405 // NO! 395 406 h->SetShortExpVector(); 396 /*computes the ecart*/407 h->SetpFDeg(); 397 408 if (strat->honey) 398 409 { 399 if (ei <= (*h).ecart)400 (*h).ecart = d-pFDeg((*h).p);410 if (ei <= h->ecart) 411 h->ecart = d-h->GetpFDeg(); 401 412 else 402 (*h).ecart = d-pFDeg((*h).p)+ei-(*h).ecart; 403 pLDeg((*h).p,&((*h).length)); 404 //(*h).length = pLength((*h).p); 413 h->ecart = d-h->GetpFDeg()+ei-h->ecart; 405 414 } 406 415 else 407 (*h).ecart = pLDeg((*h).p,&((*h).length))-pFDeg((*h).p); 416 // this has the side effect of setting h->length 417 h->ecart = h->pLDeg() - h->GetpFDeg(); 418 408 419 if (strat->syzComp!=0) 409 420 { 410 if ((strat->syzComp>0) && (pMinComp((*h).p) > strat->syzComp)) 411 { 421 if ((strat->syzComp>0) && (h->MinComp() > strat->syzComp)) 422 { 423 if (strat->honey) h->SetLength(); 424 #ifdef KDEBUG 412 425 if (TEST_OPT_DEBUG) PrintS(" > syzComp\n"); 426 #endif 413 427 return -2; 414 428 } 415 416 429 } 417 430 /*- try to reduce the s-polynomial -*/ 418 431 pass++; 419 d = pFDeg((*h).p)+(*h).ecart;432 d = h->GetpFDeg()+h->ecart; 420 433 /* 421 434 *test whether the polynomial should go to the lazyset L … … 426 439 && ((d >= reddeg) || (pass > strat->LazyPass))) 427 440 { 441 h->SetLmCurrRing(); 442 if (strat->honey) h->SetLength(); 443 assume(h->FDeg == h->pFDeg()); 428 444 at = strat->posInL(strat->L,strat->Ll,*h,strat); 429 445 if (at <= strat->Ll) 430 446 { 431 i=strat->sl+1; 432 do 433 { 434 i--; 435 if (i<0) return 1; 436 } while (!pLmShortDivisibleBy(strat->S[i], strat->sevS[i], 437 (*h).p, not_sev)); 447 if (kFindDivisibleByInS(strat->S, strat->sevS, strat->sl, h) < 0) 448 return 1; 449 h->CanonicalizeP(); 438 450 enterL(&strat->L,&strat->Ll,&strat->Lmax,*h,at); 451 #ifdef KDEBUG 439 452 if (TEST_OPT_DEBUG) Print(" degree jumped; ->L%d\n",at); 440 (*h).p = NULL; 453 #endif 454 h->Clear(); 441 455 return -1; 442 456 } … … 465 479 if (! strat->homog) 466 480 { 467 d = h-> pFDeg() + h->ecart;481 d = h->GetpFDeg() + h->ecart; 468 482 reddeg = strat->LazyDegree+d; 469 483 } … … 473 487 j = kFindDivisibleByInT(strat->T, strat->sevT, strat->tl, h); 474 488 if (j < 0) 489 { 490 if (! strat->homog) 491 h->SetDegStuffReturnLDeg(); 475 492 return 1; 493 } 476 494 477 495 if (!TEST_OPT_INTSTRATEGY) … … 497 515 if (h->IsNull()) 498 516 { 499 if (h->lcm!=NULL) pLmFree( (*h).lcm);517 if (h->lcm!=NULL) pLmFree(h->lcm); 500 518 h->Clear(); 501 519 return 0; … … 506 524 { 507 525 if ((strat->syzComp>0) && 508 ( p_MinComp(h->GetLmTailRing(), h->tailRing) > strat->syzComp))526 (h->MinComp() > strat->syzComp)) 509 527 { 510 528 #ifdef KDEBUG … … 516 534 if (!strat->homog) 517 535 { 518 d = h->Set LengthEcartReturnLDeg();536 d = h->SetDegStuffReturnLDeg(); 519 537 /*- try to reduce the s-polynomial -*/ 520 538 pass++; … … 871 889 strat->L[i].p2, 872 890 strat->kNoether); 891 strat->L[i].SetpFDeg(); 873 892 strat->L[i].ecart = pLDeg(strat->L[i].p,&strat->L[i].length) 874 - pFDeg(strat->L[i].p);893 -strat->L[i].GetpFDeg(); 875 894 } 876 895 } … … 898 917 /*- tries to cancel a unit: -*/ 899 918 cancelunit(&p); 900 if (p.p != strat->T[i].p) strat->sevT[i] = pGetShortExpVector(p.p); 919 if (p.p != strat->T[i].p) 920 { 921 strat->sevT[i] = pGetShortExpVector(p.p); 922 p.SetpFDeg(); 923 } 901 924 strat->T[i] = p; 902 925 i++; … … 914 937 if (TEST_OPT_WEIGHTM) 915 938 { 916 pFDeg=pFDegOld; 939 if (pFDegOld != pFDeg) 940 { 941 pFDeg=pFDegOld; 942 int i; 943 for (i =0; i<=strat->Ll; i++) 944 { 945 strat->L[i].SetpFDeg(); 946 } 947 for (i=0; i<=strat->tl; i++) 948 { 949 strat->T[i].SetpFDeg(); 950 } 951 } 917 952 pLDeg=pLDegOld; 918 953 if (ecartWeights) -
Singular/kstd2.cc
r84038f rdf8937 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: kstd2.cc,v 1.6 0 2000-11-14 16:04:55obachman Exp $ */4 /* $Id: kstd2.cc,v 1.61 2000-11-16 09:54:50 obachman Exp $ */ 5 5 /* 6 6 * ABSTRACT - Kernel: alg. of Buchberger … … 138 138 if (h->GetLmTailRing() == NULL) 139 139 { 140 if (h->lcm!=NULL) pLmFree( (*h).lcm);141 #ifdef KDEBUG 142 (*h).lcm=NULL;140 if (h->lcm!=NULL) pLmFree(h->lcm); 141 #ifdef KDEBUG 142 h->lcm=NULL; 143 143 #endif 144 144 return 0; … … 158 158 int j = 0; 159 159 int pass = 0; 160 int reddeg = h->pFDeg(); 160 assume(h->pFDeg() == h->FDeg); 161 int reddeg = h->FDeg; 161 162 162 163 h->SetShortExpVector(); … … 189 190 if (h->GetLmTailRing() == NULL) 190 191 { 191 if (h->lcm!=NULL) pLmFree( (*h).lcm);192 #ifdef KDEBUG 193 (*h).lcm=NULL;192 if (h->lcm!=NULL) pLmFree(h->lcm); 193 #ifdef KDEBUG 194 h->lcm=NULL; 194 195 #endif 195 196 return 0; 196 197 } 197 198 h->SetShortExpVector(); 198 d = h-> pFDeg();199 d = h->SetpFDeg(); 199 200 /*- try to reduce the s-polynomial -*/ 200 201 pass++; … … 232 233 { 233 234 if (strat->tl<0) return 1; 234 235 poly pi, h_p; 235 assume(h->FDeg == h->pFDeg()); 236 237 poly h_p; 236 238 int i,j,at,reddeg,d,pass,ei, ii, h_d; 237 239 unsigned long not_sev; 238 240 239 241 pass = j = 0; 240 d = reddeg = h-> pFDeg()+ h->ecart;242 d = reddeg = h->FDeg + h->ecart; 241 243 h->SetShortExpVector(); 242 244 h_p = h->GetLmTailRing(); … … 247 249 if (j < 0) return 1; 248 250 249 pi = strat->T[j].p;250 251 ei = strat->T[j].ecart; 251 252 ii = j; … … 261 262 if (i > strat->tl) 262 263 break; 263 if (ei <= (*h).ecart)264 if (ei <= h->ecart) 264 265 break; 265 266 if ((strat->T[i].ecart < ei) && … … 270 271 * the polynomial to reduce with is now; 271 272 */ 272 pi = strat->T[i].p;273 273 ei = strat->T[i].ecart; 274 274 ii = i; … … 279 279 * end of search: have to reduce with pi 280 280 */ 281 if ((pass!=0) && (ei > (*h).ecart))281 if ((pass!=0) && (ei > h->ecart)) 282 282 { 283 283 h->SetLmCurrRing(); … … 329 329 if (h_p == NULL) 330 330 { 331 if (h->lcm!=NULL) pLmFree( (*h).lcm);332 #ifdef KDEBUG 333 (*h).lcm=NULL;331 if (h->lcm!=NULL) pLmFree(h->lcm); 332 #ifdef KDEBUG 333 h->lcm=NULL; 334 334 #endif 335 335 return 0; … … 337 337 h->SetShortExpVector(); 338 338 not_sev = ~ h->sev; 339 h_d = h-> pFDeg();339 h_d = h->SetpFDeg(); 340 340 /* compute the ecart */ 341 if (ei <= (*h).ecart)342 (*h).ecart = d-h_d;341 if (ei <= h->ecart) 342 h->ecart = d-h_d; 343 343 else 344 (*h).ecart = d-h_d+ei-(*h).ecart;344 h->ecart = d-h_d+ei-h->ecart; 345 345 /* 346 346 * try to reduce the s-polynomial h … … 350 350 */ 351 351 pass++; 352 d = h_d + (*h).ecart;352 d = h_d + h->ecart; 353 353 if ((strat->Ll >= 0) && ((d > reddeg) || (pass > strat->LazyPass))) 354 354 { -
Singular/kutil.cc
r84038f rdf8937 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: kutil.cc,v 1.7 7 2000-11-14 16:04:56obachman Exp $ */4 /* $Id: kutil.cc,v 1.78 2000-11-16 09:54:51 obachman Exp $ */ 5 5 /* 6 6 * ABSTRACT: kernel: utils for kStd … … 141 141 L->ecart = 0; 142 142 L->length = 1; 143 L->pLength = 1; 143 L->pLength = 1; // let pLength be determined dynamically 144 144 if (L->t_p != NULL && pNext(L->t_p) != NULL) 145 145 pNext(L->t_p) = NULL; … … 463 463 T->pLength != pLength(p)) 464 464 { 465 return dReportError("%c[%d] length error: has %d, specified to have %d",465 return dReportError("%c[%d] pLength error: has %d, specified to have %d", 466 466 TN, i , pLength(p), T->pLength); 467 } 468 469 // check FDeg, for elements in L and T 470 if (i >= 0 && (TN == 'T' || TN == 'L')) 471 { 472 // FDeg has ir element from T of L set 473 if (T->FDeg != T->pFDeg()) 474 return dReportError("%c[%d] FDeg error: has %d, specified to have %d", 475 TN, i , T->pFDeg(), T->FDeg); 476 } 477 478 // check is_normalized for elements in T 479 if (i >= 0 && TN == 'T') 480 { 481 if (T->is_normalized && ! nIsOne(pGetCoeff(p))) 482 return dReportError("T[%d] is_normalized error", i); 483 467 484 } 468 485 return TRUE; … … 483 500 poly p; 484 501 L->GetLm(p, r); 485 #if 0486 502 if (L->sev != 0 && p_GetShortExpVector(p, r) != L->sev) 487 503 { … … 489 505 lpos, p_GetShortExpVector(p, r), L->sev); 490 506 } 491 #endif492 507 } 493 508 r_assume(L->max == NULL); … … 735 750 { 736 751 int i; 737 752 // this should be corrected 753 p.FDeg = p.pFDeg(); 738 754 if ((*length)>=0) 739 755 { … … 752 768 void initEcartNormal (LObject* h) 753 769 { 754 poly h_p = h->GetLmTailRing(); 755 if (h->bucket != NULL) 756 { 757 assume(pNext(h_p) == NULL); 758 int i = kBucketCanonicalize(h->bucket); 759 pNext(h_p) = h->bucket->buckets[i]; 760 } 761 h->ecart = pLDeg(h_p,&(h->length), h->tailRing)-pFDeg(h_p, h->tailRing); 762 if (h->bucket != NULL) pNext(h_p) = NULL; 770 h->FDeg = h->pFDeg(); 771 h->ecart = h->pLDeg() - h->FDeg; 763 772 } 764 773 765 774 void initEcartBBA (LObject* h) 766 775 { 776 h->FDeg = h->pFDeg(); 767 777 (*h).ecart = 0; 768 //#ifdef KDEBUG769 778 (*h).length = 0; 770 //#endif771 779 } 772 780 773 781 void initEcartPairBba (LObject* Lp,poly f,poly g,int ecartF,int ecartG) 774 782 { 775 //#ifdef KDEBUG 783 Lp->FDeg = Lp->pFDeg(); 776 784 (*Lp).ecart = 0; 777 785 (*Lp).length = 0; 778 //#endif779 786 } 780 787 781 788 void initEcartPairMora (LObject* Lp,poly f,poly g,int ecartF,int ecartG) 782 789 { 790 Lp->FDeg = Lp->pFDeg(); 783 791 (*Lp).ecart = max(ecartF,ecartG); 784 (*Lp).ecart = (*Lp).ecart-(pFDeg((*Lp).p)-pFDeg((*Lp).lcm)); 785 //#ifdef KDEBUG 792 (*Lp).ecart = (*Lp).ecart- (Lp->FDeg -pFDeg((*Lp).lcm)); 786 793 (*Lp).length = 0; 787 //#endif788 794 } 789 795 … … 1646 1652 1647 1653 int o = pFDeg(p.p); 1648 int op = pFDeg(set[length].p);1654 int op = set[length].GetpFDeg(); 1649 1655 1650 1656 if ((op < o) … … 1660 1666 if (an >= en-1) 1661 1667 { 1662 op= pFDeg(set[an].p);1668 op= set[an].GetpFDeg(); 1663 1669 if ((op > o) 1664 1670 || (( op == o) && (pLmCmp(set[an].p,p.p) == pOrdSgn))) … … 1667 1673 } 1668 1674 i=(an+en) / 2; 1669 op = pFDeg(set[i].p);1675 op = set[i].GetpFDeg(); 1670 1676 if (( op > o) 1671 1677 || (( op == o) && (pLmCmp(set[i].p,p.p) == pOrdSgn))) … … 1686 1692 1687 1693 int o = pFDeg(p.p); 1688 int op = pFDeg(set[length].p);1694 int op = set[length].GetpFDeg(); 1689 1695 1690 1696 if (( op < o) … … 1701 1707 if (an >= en-1) 1702 1708 { 1703 op = pFDeg(set[an].p);1709 op = set[an].GetpFDeg(); 1704 1710 if (( op > o) 1705 1711 || (( op == o) && (set[an].length > p.length)) … … 1710 1716 } 1711 1717 i=(an+en) / 2; 1712 op = pFDeg(set[i].p);1718 op = set[i].GetpFDeg(); 1713 1719 if (( op > o) 1714 1720 || (( op == o) && (set[i].length > p.length)) … … 1732 1738 int o = pFDeg(p.p); 1733 1739 1734 if ( pFDeg(set[length].p) <= o)1740 if (set[length].GetpFDeg() <= o) 1735 1741 return length+1; 1736 1742 … … 1742 1748 if (an >= en-1) 1743 1749 { 1744 if ( pFDeg(set[an].p) > o)1750 if (set[an].GetpFDeg() > o) 1745 1751 return an; 1746 1752 return en; 1747 1753 } 1748 1754 i=(an+en) / 2; 1749 if ( pFDeg(set[i].p) > o)1755 if (set[i].GetpFDeg() > o) 1750 1756 en=i; 1751 1757 else … … 1767 1773 * loop 1768 1774 * { 1769 * if (( pFDeg(set[j].p)+set[j].ecart > o)1770 * || (( pFDeg(set[j].p)+set[j].ecart == o)1775 * if ((set[j].GetpFDeg()+set[j].ecart > o) 1776 * || ((set[j].GetpFDeg()+set[j].ecart == o) 1771 1777 * && (pLmCmp(set[j].p,p.p) == pOrdSgn))) 1772 1778 * { … … 1782 1788 1783 1789 int o = pFDeg(p.p) + p.ecart; 1784 int op = pFDeg(set[length].p)+set[length].ecart;1790 int op = set[length].GetpFDeg()+set[length].ecart; 1785 1791 1786 1792 if ((op < o) … … 1796 1802 if (an >= en-1) 1797 1803 { 1798 op = pFDeg(set[an].p)+set[an].ecart;1804 op = set[an].GetpFDeg()+set[an].ecart; 1799 1805 if (( op > o) 1800 1806 || (( op == o) && (pLmCmp(set[an].p,p.p) == pOrdSgn))) … … 1803 1809 } 1804 1810 i=(an+en) / 2; 1805 op = pFDeg(set[i].p)+set[i].ecart;1811 op = set[i].GetpFDeg()+set[i].ecart; 1806 1812 if (( op > o) 1807 1813 || (( op == o) && (pLmCmp(set[i].p,p.p) == pOrdSgn))) … … 1842 1848 1843 1849 int o = pFDeg(p.p) + p.ecart; 1844 int op = pFDeg(set[length].p)+set[length].ecart;1850 int op = set[length].GetpFDeg()+set[length].ecart; 1845 1851 1846 1852 if ((op < o) … … 1857 1863 if (an >= en-1) 1858 1864 { 1859 op = pFDeg(set[an].p)+set[an].ecart;1865 op = set[an].GetpFDeg()+set[an].ecart; 1860 1866 if (( op > o) 1861 1867 || (( op == o) && (set[an].ecart < p.ecart)) … … 1866 1872 } 1867 1873 i=(an+en) / 2; 1868 op = pFDeg(set[i].p)+set[i].ecart;1874 op = set[i].GetpFDeg()+set[i].ecart; 1869 1875 if ((op > o) 1870 1876 || (( op == o) && (set[i].ecart < p.ecart)) … … 1894 1900 if (pGetComp(set[length].p)*cc == c) 1895 1901 { 1896 int op = pFDeg(set[length].p)+set[length].ecart;1902 int op = set[length].GetpFDeg()+set[length].ecart; 1897 1903 if ((op < o) 1898 1904 || ((op == o) && (set[length].ecart > p.ecart)) … … 1913 1919 if (pGetComp(set[an].p)*cc == c) 1914 1920 { 1915 int op = pFDeg(set[an].p)+set[an].ecart;1921 int op = set[an].GetpFDeg()+set[an].ecart; 1916 1922 if ((op > o) 1917 1923 || ((op == o) && (set[an].ecart < p.ecart)) … … 1927 1933 else if (pGetComp(set[i].p)*cc == c) 1928 1934 { 1929 int op = pFDeg(set[i].p)+set[i].ecart;1935 int op = set[i].GetpFDeg()+set[i].ecart; 1930 1936 if ((op > o) 1931 1937 || ((op == o) && (set[i].ecart < p.ecart)) … … 1951 1957 1952 1958 int o = p.ecart; 1959 int op=pFDeg(p.p); 1953 1960 1954 1961 if (set[length].ecart < o) … … 1956 1963 if (set[length].ecart == o) 1957 1964 { 1958 int oo=pFDeg(set[length].p); 1959 int op=pFDeg(p.p); 1965 int oo=set[length].GetpFDeg(); 1960 1966 if ((oo < op) || ((oo==op) && (set[length].length < p.length))) 1961 1967 return length+1; … … 1973 1979 if (set[an].ecart == o) 1974 1980 { 1975 int oo=pFDeg(set[an].p); 1976 int op=pFDeg(p.p); 1981 int oo=set[an].GetpFDeg(); 1977 1982 if((oo > op) 1978 1983 || ((oo==op) && (set[an].length > p.length))) … … 1986 1991 else if (set[i].ecart == o) 1987 1992 { 1988 int oo=pFDeg(set[i].p); 1989 int op=pFDeg(p.p); 1993 int oo=set[i].GetpFDeg(); 1990 1994 if ((oo > op) 1991 1995 || ((oo == op) && (set[i].length > p.length))) … … 2010 2014 2011 2015 int d=pFDeg(p.p); 2012 int op= pFDeg(set[length].p);2016 int op=set[length].GetpFDeg(); 2013 2017 2014 2018 if ((op > d) … … 2024 2028 if (an >= en-1) 2025 2029 { 2026 op= pFDeg(set[an].p);2030 op=set[an].GetpFDeg(); 2027 2031 if ((op > d) 2028 2032 || ((op == d) && (p.p1!=NULL) && (set[an].p1==NULL)) … … 2032 2036 } 2033 2037 i=(an+en) / 2; 2034 op= pFDeg(set[i].p);2038 op=set[i].GetpFDeg(); 2035 2039 if ((op>d) 2036 2040 || ((op==d) && (p.p1!=NULL) && (set[i].p1==NULL)) … … 2088 2092 * { 2089 2093 * if (j > length) return j; 2090 * if (( pFDeg(set[j].p) < o)) return j;2091 * if (( pFDeg(set[j].p) == o) && (pLmCmp(set[j].p,p.p) == -pOrdSgn))2094 * if ((set[j].GetpFDeg() < o)) return j; 2095 * if ((set[j].GetpFDeg() == o) && (pLmCmp(set[j].p,p.p) == -pOrdSgn)) 2092 2096 * { 2093 2097 * return j; … … 2101 2105 2102 2106 int o = pFDeg(p.p); 2103 int op = pFDeg(set[length].p);2107 int op = set[length].GetpFDeg(); 2104 2108 2105 2109 if ((op > o) … … 2113 2117 if (an >= en-1) 2114 2118 { 2115 op = pFDeg(set[an].p);2119 op = set[an].GetpFDeg(); 2116 2120 if ((op > o) 2117 2121 || ((op == o) && (pLmCmp(set[an].p,p.p) != -pOrdSgn))) … … 2120 2124 } 2121 2125 i=(an+en) / 2; 2122 op = pFDeg(set[i].p);2126 op = set[i].GetpFDeg(); 2123 2127 if ((op > o) 2124 2128 || ((op == o) && (pLmCmp(set[i].p,p.p) != -pOrdSgn))) … … 2140 2144 2141 2145 int o = pFDeg(p.p); 2142 int op = pFDeg(set[length].p);2146 int op = set[length].GetpFDeg(); 2143 2147 2144 2148 if ((op > o) … … 2154 2158 if (an >= en-1) 2155 2159 { 2156 op = pFDeg(set[an].p);2160 op = set[an].GetpFDeg(); 2157 2161 if ((op > o) 2158 2162 || ((op == o) && (set[an].length >2*p.length)) … … 2163 2167 } 2164 2168 i=(an+en) / 2; 2165 op = pFDeg(set[i].p);2169 op = set[i].GetpFDeg(); 2166 2170 if ((op > o) 2167 2171 || ((op == o) && (set[i].length > 2*p.length)) … … 2187 2191 int o = pFDeg(p.p); 2188 2192 2189 if ( pFDeg(set[length].p) > o)2193 if (set[length].GetpFDeg() > o) 2190 2194 return length+1; 2191 2195 … … 2197 2201 if (an >= en-1) 2198 2202 { 2199 if ( pFDeg(set[an].p) >= o)2203 if (set[an].GetpFDeg() >= o) 2200 2204 return en; 2201 2205 return an; 2202 2206 } 2203 2207 i=(an+en) / 2; 2204 if ( pFDeg(set[i].p) >= o)2208 if (set[i].GetpFDeg() >= o) 2205 2209 an=i; 2206 2210 else … … 2225 2229 * { 2226 2230 * if (j > length) return j; 2227 * if ( pFDeg(set[j].p)+set[j].ecart < o) return j;2228 * if (( pFDeg(set[j].p)+set[j].ecart == o)2231 * if (set[j].GetpFDeg()+set[j].ecart < o) return j; 2232 * if ((set[j].GetpFDeg()+set[j].ecart == o) 2229 2233 * && (pLmCmp(set[j].p,p.p) == -pOrdSgn)) 2230 2234 * { … … 2239 2243 2240 2244 int o = pFDeg(p.p) + p.ecart; 2241 int op = pFDeg(set[length].p) + set[length].ecart;2245 int op = set[length].GetpFDeg() + set[length].ecart; 2242 2246 2243 2247 if ((op > o) … … 2251 2255 if (an >= en-1) 2252 2256 { 2253 op = pFDeg(set[an].p) + set[an].ecart;2257 op = set[an].GetpFDeg() + set[an].ecart; 2254 2258 if ((op > o) 2255 2259 || ((op == o) && (pLmCmp(set[an].p,p.p) != -pOrdSgn))) … … 2258 2262 } 2259 2263 i=(an+en) / 2; 2260 op = pFDeg(set[i].p) + set[i].ecart;2264 op = set[i].GetpFDeg() + set[i].ecart; 2261 2265 if ((op > o) 2262 2266 || ((op == o) && (pLmCmp(set[i].p,p.p) != -pOrdSgn))) … … 2281 2285 int o = pFDeg(p.p) + p.ecart; 2282 2286 2283 if (( pFDeg(set[length].p) + set[length].ecart > o)2284 || (( pFDeg(set[length].p) + set[length].ecart == o)2287 if ((set[length].GetpFDeg() + set[length].ecart > o) 2288 || ((set[length].GetpFDeg() + set[length].ecart == o) 2285 2289 && (set[length].ecart > p.ecart)) 2286 || (( pFDeg(set[length].p) + set[length].ecart == o)2290 || ((set[length].GetpFDeg() + set[length].ecart == o) 2287 2291 && (set[length].ecart == p.ecart) 2288 2292 && (pLmCmp(set[length].p,p.p) != -pOrdSgn))) … … 2295 2299 if (an >= en-1) 2296 2300 { 2297 if (( pFDeg(set[an].p) + set[an].ecart > o)2298 || (( pFDeg(set[an].p) + set[an].ecart == o)2301 if ((set[an].GetpFDeg() + set[an].ecart > o) 2302 || ((set[an].GetpFDeg() + set[an].ecart == o) 2299 2303 && (set[an].ecart > p.ecart)) 2300 || (( pFDeg(set[an].p) + set[an].ecart == o)2304 || ((set[an].GetpFDeg() + set[an].ecart == o) 2301 2305 && (set[an].ecart == p.ecart) 2302 2306 && (pLmCmp(set[an].p,p.p) != -pOrdSgn))) … … 2305 2309 } 2306 2310 i=(an+en) / 2; 2307 if (( pFDeg(set[i].p) + set[i].ecart > o)2308 || (( pFDeg(set[i].p) + set[i].ecart == o)2311 if ((set[i].GetpFDeg() + set[i].ecart > o) 2312 || ((set[i].GetpFDeg() + set[i].ecart == o) 2309 2313 && (set[i].ecart > p.ecart)) 2310 || (( pFDeg(set[i].p) +set[i].ecart == o)2314 || ((set[i].GetpFDeg() +set[i].ecart == o) 2311 2315 && (set[i].ecart == p.ecart) 2312 2316 && (pLmCmp(set[i].p,p.p) != -pOrdSgn))) … … 2316 2320 } 2317 2321 } 2318 #if 0 2322 /*2 2323 * looks up the position of polynomial p in set 2324 * e is the ecart of p 2325 * set[length] is the smallest element in set with respect 2326 * to the ordering-procedure pComp 2327 */ 2328 int posInL17_c (const LSet set, const int length, 2329 const LObject &p,const kStrategy strat) 2319 2330 { 2320 2331 if (length<0) return 0; 2321 2332 2333 int cc = (-1+2*currRing->order[0]==ringorder_c); 2334 /* cc==1 for (c,..), cc==-1 for (C,..) */ 2335 int c = pGetComp(p.p)*cc; 2322 2336 int o = pFDeg(p.p) + p.ecart; 2323 int ol = pFDeg(set[length].p) + set[length].ecart; 2324 2325 if ((ol > o) 2326 || ((ol == o) 2327 && (set[length].ecart > p.ecart)) 2328 || ((ol == o) 2329 && (set[length].ecart == p.ecart) 2330 //&& (set[length].lp+set[length].length > p.lp+p.length)) 2331 && (set[length].length > p.length)) 2332 || ((ol == o) 2333 && (set[length].ecart == p.ecart) 2334 //&& (set[length].lp+set[length].length == p.lp+p.length) 2335 && (set[length].length == p.length) 2336 && (pLmCmp(set[length].p,p.p) != -pOrdSgn))) 2337 2338 if (pGetComp(set[length].p)*cc > c) 2337 2339 return length+1; 2340 if (pGetComp(set[length].p)*cc == c) 2341 { 2342 if ((set[length].GetpFDeg() + set[length].ecart > o) 2343 || ((set[length].GetpFDeg() + set[length].ecart == o) 2344 && (set[length].ecart > p.ecart)) 2345 || ((set[length].GetpFDeg() + set[length].ecart == o) 2346 && (set[length].ecart == p.ecart) 2347 && (pLmCmp(set[length].p,p.p) != -pOrdSgn))) 2348 return length+1; 2349 } 2338 2350 int i; 2339 2351 int an = 0; … … 2343 2355 if (an >= en-1) 2344 2356 { 2345 ol = pFDeg(set[an].p) + set[an].ecart;2346 if ((ol > o)2347 || ((ol == o)2348 && (set[an].ecart > p.ecart))2349 || ((ol == o)2350 && (set[an].ecart == p.ecart)2351 //&& (set[length].lp+set[length].length > p.lp+p.length))2352 && (set[length].length > p.length))2353 || ((ol == o)2354 && (set[an].ecart == p.ecart)2355 //&& (set[length].lp+set[length].length == p.lp+p.length)2356 && (set[length].length == p.length)2357 && (pLmCmp(set[an].p,p.p) != -pOrdSgn)))2358 return en;2359 return an;2360 }2361 i=(an+en) / 2;2362 ol = pFDeg(set[i].p) + set[i].ecart;2363 if ((ol > o)2364 || ((ol == o)2365 && (set[i].ecart > p.ecart))2366 || ((ol == o)2367 && (set[i].ecart == p.ecart)2368 //&& (set[i].lp+set[i].length > p.lp+p.length))2369 && (set[i].length > p.length))2370 || ((ol == o)2371 && (set[i].ecart == p.ecart)2372 //&& (set[i].lp+set[i].length == p.lp+p.length)2373 && (set[i].length == p.length)2374 && (pLmCmp(set[i].p,p.p) != -pOrdSgn)))2375 an=i;2376 else2377 en=i;2378 }2379 }2380 #endif2381 /*22382 * looks up the position of polynomial p in set2383 * e is the ecart of p2384 * set[length] is the smallest element in set with respect2385 * to the ordering-procedure pComp2386 */2387 int posInL17_c (const LSet set, const int length,2388 const LObject &p,const kStrategy strat)2389 {2390 if (length<0) return 0;2391 2392 int cc = (-1+2*currRing->order[0]==ringorder_c);2393 /* cc==1 for (c,..), cc==-1 for (C,..) */2394 int c = pGetComp(p.p)*cc;2395 int o = pFDeg(p.p) + p.ecart;2396 2397 if (pGetComp(set[length].p)*cc > c)2398 return length+1;2399 if (pGetComp(set[length].p)*cc == c)2400 {2401 if ((pFDeg(set[length].p) + set[length].ecart > o)2402 || ((pFDeg(set[length].p) + set[length].ecart == o)2403 && (set[length].ecart > p.ecart))2404 || ((pFDeg(set[length].p) + set[length].ecart == o)2405 && (set[length].ecart == p.ecart)2406 && (pLmCmp(set[length].p,p.p) != -pOrdSgn)))2407 return length+1;2408 }2409 int i;2410 int an = 0;2411 int en= length;2412 loop2413 {2414 if (an >= en-1)2415 {2416 2357 if (pGetComp(set[an].p)*cc > c) 2417 2358 return en; 2418 2359 if (pGetComp(set[an].p)*cc == c) 2419 2360 { 2420 if (( pFDeg(set[an].p) + set[an].ecart > o)2421 || (( pFDeg(set[an].p) + set[an].ecart == o)2361 if ((set[an].GetpFDeg() + set[an].ecart > o) 2362 || ((set[an].GetpFDeg() + set[an].ecart == o) 2422 2363 && (set[an].ecart > p.ecart)) 2423 || (( pFDeg(set[an].p) + set[an].ecart == o)2364 || ((set[an].GetpFDeg() + set[an].ecart == o) 2424 2365 && (set[an].ecart == p.ecart) 2425 2366 && (pLmCmp(set[an].p,p.p) != -pOrdSgn))) … … 2433 2374 else if (pGetComp(set[i].p)*cc == c) 2434 2375 { 2435 if (( pFDeg(set[i].p) + set[i].ecart > o)2436 || (( pFDeg(set[i].p) + set[i].ecart == o)2376 if ((set[i].GetpFDeg() + set[i].ecart > o) 2377 || ((set[i].GetpFDeg() + set[i].ecart == o) 2437 2378 && (set[i].ecart > p.ecart)) 2438 || (( pFDeg(set[i].p) +set[i].ecart == o)2379 || ((set[i].GetpFDeg() +set[i].ecart == o) 2439 2380 && (set[i].ecart == p.ecart) 2440 2381 && (pLmCmp(set[i].p,p.p) != -pOrdSgn))) … … 2706 2647 void initS (ideal F, ideal Q,kStrategy strat) 2707 2648 { 2708 LObject h;2709 2649 int i,pos; 2710 2650 2711 h.ecart=0; h.length=0;2712 2651 if (Q!=NULL) i=IDELEMS(Q); 2713 2652 else i=0; … … 2728 2667 if (Q->m[i]!=NULL) 2729 2668 { 2669 LObject h; 2730 2670 h.p = pCopy(Q->m[i]); 2731 2671 if (TEST_OPT_INTSTRATEGY) … … 2762 2702 if (F->m[i]!=NULL) 2763 2703 { 2704 LObject h; 2764 2705 h.p = pCopy(F->m[i]); 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 && (((strat->honey) && (h.ecart+pFDeg(h.p)>Kstd1_deg))2782 || ((!(strat->honey)) && (pFDeg(h.p)>Kstd1_deg))))2783 2784 2706 if (TEST_OPT_INTSTRATEGY) 2707 { 2708 //pContent(h.p); 2709 pCleardenom(h.p); // also does a pContent 2710 } 2711 else 2712 { 2713 pNorm(h.p); 2714 } 2715 strat->initEcart(&h); 2716 if (pOrdSgn==-1) 2717 { 2718 cancelunit(&h); /*- tries to cancel a unit -*/ 2719 deleteHC(&h.p, &h.ecart, &h.length,strat); 2720 } 2721 if (TEST_OPT_DEGBOUND 2722 && (((strat->honey) && (h.ecart+pFDeg(h.p)>Kstd1_deg)) 2723 || ((!(strat->honey)) && (pFDeg(h.p)>Kstd1_deg)))) 2724 pDelete(&h.p); 2725 else 2785 2726 if (h.p!=NULL) 2786 2727 { … … 2805 2746 void initSL (ideal F, ideal Q,kStrategy strat) 2806 2747 { 2807 LObject h;2808 2748 int i,pos; 2809 2749 … … 2826 2766 if (Q->m[i]!=NULL) 2827 2767 { 2768 LObject h; 2828 2769 h.p = pCopy(Q->m[i]); 2829 2770 if (TEST_OPT_INTSTRATEGY) … … 2860 2801 if (F->m[i]!=NULL) 2861 2802 { 2803 LObject h; 2862 2804 h.p = pCopy(F->m[i]); 2863 h.p1=NULL; 2864 h.p2=NULL; 2865 h.lcm=NULL; 2866 if (TEST_OPT_INTSTRATEGY) 2867 { 2868 //pContent(h.p); 2869 pCleardenom(h.p); // also does a pContent 2870 } 2871 else 2872 { 2873 pNorm(h.p); 2874 } 2875 strat->initEcart(&h); 2876 if (pOrdSgn==-1) 2877 { 2878 cancelunit(&h); /*- tries to cancel a unit -*/ 2879 deleteHC(&h.p, &h.ecart, &h.length,strat); 2880 } 2881 if (TEST_OPT_DEGBOUND 2882 && (((strat->honey) && (h.ecart+pFDeg(h.p)>Kstd1_deg)) 2883 || ((!(strat->honey)) && (pFDeg(h.p)>Kstd1_deg)))) 2884 pDelete(&h.p); 2885 else 2805 if (TEST_OPT_INTSTRATEGY) 2806 { 2807 //pContent(h.p); 2808 pCleardenom(h.p); // also does a pContent 2809 } 2810 else 2811 { 2812 pNorm(h.p); 2813 } 2814 strat->initEcart(&h); 2815 if (pOrdSgn==-1) 2816 { 2817 cancelunit(&h); /*- tries to cancel a unit -*/ 2818 deleteHC(&h.p, &h.ecart, &h.length,strat); 2819 } 2820 if (TEST_OPT_DEGBOUND 2821 && (((strat->honey) && (h.ecart+pFDeg(h.p)>Kstd1_deg)) 2822 || ((!(strat->honey)) && (pFDeg(h.p)>Kstd1_deg)))) 2823 pDelete(&h.p); 2824 else 2886 2825 if (h.p!=NULL) 2887 2826 { … … 2910 2849 void initSSpecial (ideal F, ideal Q, ideal P,kStrategy strat) 2911 2850 { 2912 LObject h;2913 2851 int i,pos; 2914 2852 2915 h.ecart=0; h.length=0;2916 2853 if (Q!=NULL) i=IDELEMS(Q); 2917 2854 else i=0; … … 2933 2870 if (Q->m[i]!=NULL) 2934 2871 { 2872 LObject h; 2935 2873 h.p = pCopy(Q->m[i]); 2936 2874 //if (TEST_OPT_INTSTRATEGY) … … 2969 2907 if (F->m[i]!=NULL) 2970 2908 { 2909 LObject h; 2971 2910 h.p = pCopy(F->m[i]); 2972 2911 if (pOrdSgn==1) … … 3003 2942 if (P->m[i]!=NULL) 3004 2943 { 2944 LObject h; 3005 2945 h.p=pCopy(P->m[i]); 3006 2946 strat->initEcart(&h); … … 3487 3427 } 3488 3428 strat->T[atT] = (TObject) p; 3489 if (strat->use_buckets && p.pLength <= 0)3490 strat->T[atT].pLength = pLength(p.p);3491 3429 3492 3430 if (strat->tailRing != currRing && pNext(p.p) != NULL) … … 3495 3433 strat->T[atT].max = NULL; 3496 3434 3435 strat->T[atT].FDeg = p.pFDeg(); 3497 3436 strat->tl++; 3498 3437 strat->R[strat->tl] = &(strat->T[atT]); 3499 3438 strat->T[atT].i_r = strat->tl; 3439 assume(p.sev == 0 || pGetShortExpVector(p.p) == p.sev); 3500 3440 strat->sevT[atT] = (p.sev == 0 ? pGetShortExpVector(p.p) : p.sev); 3501 3441 kTest_T(&(strat->T[atT])); … … 3932 3872 assume(strat->tailRing == currRing); 3933 3873 3934 // for the time being, let's not do anything for syzComp and minim3935 // if (strat->syzComp) return;3936 3937 3874 for (i=0; i<= strat->Ll; i++) 3938 3875 { … … 3947 3884 if (e <= 1) e = 2; 3948 3885 3949 3950 3886 kStratChangeTailRing(strat, NULL, NULL, e); 3951 3887 } -
Singular/kutil.h
r84038f rdf8937 4 4 * Computer Algebra System SINGULAR * 5 5 ****************************************/ 6 /* $Id: kutil.h,v 1.4 3 2000-11-14 16:04:57obachman Exp $ */6 /* $Id: kutil.h,v 1.44 2000-11-16 09:54:52 obachman Exp $ */ 7 7 /* 8 8 * ABSTRACT: kernel: utils for kStd … … 39 39 public: 40 40 poly p; // Lm(p) \in currRing Tail(p) \in tailRing 41 poly t_p; // t_p \in tailRing 41 poly t_p; // t_p \in tailRing: as monomials Lm(t_p) == Lm(p) 42 42 ring tailRing; 43 int ecart, length, pLength, i_r; 44 poly max; // p_MaxExp(pNext(p)) 45 43 poly max; // p_MaxExpP(pNext(p)) 44 long FDeg; // pFDeg(p) 45 int ecart, 46 length, // as of pLDeg 47 pLength, // either == 0, or == pLength(p) 48 i_r; // index of TObject in R set 49 BOOLEAN is_normalized; // true, if pNoram was called on p, false otherwise 46 50 47 51 // initialization … … 81 85 82 86 // deg stuff 87 // computes pFDeg 83 88 KINLINE long pFDeg() const; 89 // computes and sets FDeg 90 KINLINE long SetpFDeg(); 91 // gets stored FDeg 92 KINLINE long GetpFDeg() const; 93 94 // computes pLDeg 84 95 KINLINE long pLDeg(); 85 KINLINE long SetLengthEcartReturnLDeg(); 96 // sets length, FDeg, returns LDeg 97 KINLINE long SetDegStuffReturnLDeg(); 86 98 87 99 // arithmetic … … 97 109 void wrp(); 98 110 #endif 99 100 111 }; 101 112 … … 129 140 KINLINE poly GetP(omBin lmBin = NULL); 130 141 KINLINE void CanonicalizeP(); 142 143 KINLINE long pLDeg(); 144 KINLINE long SetLength(); 145 KINLINE long SetDegStuffReturnLDeg(); 146 147 KINLINE long MinComp(); 131 148 132 149 KINLINE void ShallowCopyDelete(ring new_tailRing,
Note: See TracChangeset
for help on using the changeset viewer.