- Timestamp:
- Jun 17, 2022, 6:56:53 PM (23 months ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 8d8c973f1674602e68bdfd36d9a67586050f47bdce7435b23b44b6987cf9629684c88b0d33c063fd
- Parents:
- 148c3f7df007ca33811e5be36a569846dac3703a
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libpolys/polys/simpleideals.cc
r148c3f7 ra2c07bb 349 349 } 350 350 351 /// delete id[j], if LT(j) == coeff*mon*LT(i) (j>i) 352 static void id_DelDiv_SEV(ideal id, int k,const ring r) 353 { 354 int kk = k; 355 long *sev=(long*)omAlloc0((k+1)*sizeof(long)); 356 for (int i=0; i<=k; i++) 357 { 358 if(id->m[i]!=NULL) 359 sev[i]=p_GetShortExpVector(id->m[i],r); 360 } 361 for (int i=0; i<k; i++) 362 { 363 if (id->m[i] != NULL) 364 { 365 poly m_i=id->m[i]; 366 for (int j=i+1; j<=k; j++) 367 { 368 if (id->m[j]!=NULL) 369 { 370 if (p_LmShortDivisibleBy(m_i, sev[i],r, id->m[j],~sev[j],r)) 371 { 372 p_Delete(&id->m[j],r); 373 } 374 else if (p_LmShortDivisibleBy(id->m[j],sev[j],r, m_i,~sev[i],r)) 375 { 376 p_Delete(&id->m[i],r); 377 break; 378 } 379 } 380 } 381 } 382 } 383 omFreeSize(sev,(kk+1)*sizeof(long)); 384 } 385 351 386 /// delete id[j], if LT(j) == coeff*mon*LT(i) and vice versa, i.e., 352 387 /// delete id[i], if LT(i) == coeff*mon*LT(j) … … 386 421 { 387 422 /* the case of a coefficient field: */ 423 if (k>10) 424 { 425 id_DelDiv_SEV(id,k,r); 426 return; 427 } 388 428 for (i=k-1; i>=0; i--) 389 429 { … … 413 453 void id_DelDiv_Sorted(ideal id, const ring r) 414 454 { 415 id_Test(id, r);416 417 455 int k = IDELEMS(id)-1; 418 for (int i=0; i<k; i++) 419 { 420 if (id->m[i] != NULL) 421 { 422 poly m_i=id->m[i]; 423 for (int j=i+1; j<=k; j++) 424 { 425 if (id->m[j]!=NULL) 426 { 427 if (p_LmDivisibleByNoComp(m_i, id->m[j],r)) 428 { 429 p_Delete(&id->m[j],r); 430 } 431 else if (p_LmDivisibleByNoComp(id->m[j], m_i,r)) 432 { 433 p_Delete(&id->m[i],r); 434 break; 435 } 436 } 437 } 438 } 439 } 456 id_DelDiv_SEV(id,k,r); 440 457 } 441 458
Note: See TracChangeset
for help on using the changeset viewer.