Changeset ab453da in git
- Timestamp:
- Oct 1, 2010, 4:54:27 PM (13 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'cdfcdb8287f66bc6070028082cbbc6eff10e609b')
- Children:
- f20cf709bf3a6482f047b88775316527b71c8fdb
- Parents:
- e6651bbb0a61329057145fd896929682117e9455
- Location:
- kernel
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/ideals.cc
re6651bb rab453da 2847 2847 ideal result,h; 2848 2848 ring origR; 2849 sip_sring tmpR;2849 ring tmpR; 2850 2850 long bound; 2851 2851 … … 2858 2858 bound = smExpBound(h,c,r,ar); 2859 2859 idDelete(&h); 2860 smRingChange(&origR,tmpR,bound);2860 tmpR=smRingChange(&origR,bound); 2861 2861 b = mpNew(r,c); 2862 2862 for (i=r*c-1;i>=0;i--) … … 2882 2882 idSkipZeroes(result); 2883 2883 rChangeCurrRing(origR); 2884 result = idrMoveR(result, &tmpR);2885 sm RingClean(origR,tmpR);2884 result = idrMoveR(result,tmpR); 2885 smKillModifiedRing(tmpR); 2886 2886 idTest(result); 2887 2887 return result; -
kernel/sparsmat.cc
re6651bb rab453da 245 245 246 246 /* ----------------- ops with rings ------------------ */ 247 void smRingChange(ring *origR, sip_sring &tmpR, long bound)247 ring smRingChange(ring *origR, long bound) 248 248 { 249 249 *origR =currRing; 250 ring tt=rCopy0(currRing,FALSE,FALSE); 251 tmpR=*tt; 250 ring tmpR=rCopy0(currRing,FALSE,FALSE); 252 251 int *ord=(int*)omAlloc0(3*sizeof(int)); 253 252 int *block0=(int*)omAlloc(3*sizeof(int)); … … 255 254 ord[0]=ringorder_c; 256 255 ord[1]=ringorder_dp; 257 tmpR .order=ord;258 tmpR .OrdSgn=1;256 tmpR->order=ord; 257 tmpR->OrdSgn=1; 259 258 block0[1]=1; 260 tmpR.block0=block0; 261 block1[1]=tmpR.N; 262 tmpR.block1=block1; 263 tmpR.bitmask = 2*bound; 259 tmpR->block0=block0; 260 block1[1]=tmpR->N; 261 tmpR->block1=block1; 262 tmpR->bitmask = 2*bound; 263 tmpR->wvhdl = (int **)omAlloc0((3) * sizeof(int_ptr)); 264 264 265 265 // ??? 266 // if (tmpR .bitmask > currRing->bitmask) tmpR.bitmask = currRing->bitmask;267 268 rComplete( &tmpR,1);266 // if (tmpR->bitmask > currRing->bitmask) tmpR->bitmask = currRing->bitmask; 267 268 rComplete(tmpR,1); 269 269 if ((*origR)->qideal!=NULL) 270 270 { 271 tmpR .qideal= idrCopyR_NoSort((*origR)->qideal, (*origR), &tmpR);272 } 273 rChangeCurrRing( &tmpR);271 tmpR->qideal= idrCopyR_NoSort((*origR)->qideal, (*origR), tmpR); 272 } 273 rChangeCurrRing(tmpR); 274 274 if (TEST_OPT_PROT) 275 Print("[%ld:%d]", (long) tmpR.bitmask, tmpR.ExpL_Size); 276 } 277 278 void smRingClean(ring origR, ip_sring &tmpR) 279 { 280 if (tmpR.qideal!=NULL) id_Delete(&(tmpR.qideal),&tmpR); 281 rUnComplete(&tmpR); 282 omFreeSize((ADDRESS)tmpR.order,3*sizeof(int)); 283 omFreeSize((ADDRESS)tmpR.block0,3*sizeof(int)); 284 omFreeSize((ADDRESS)tmpR.block1,3*sizeof(int)); 275 Print("[%ld:%d]", (long) tmpR->bitmask, tmpR->ExpL_Size); 276 return tmpR; 277 } 278 279 void smKillModifiedRing(ring r) 280 { 281 if (r->qideal!=NULL) id_Delete(&(r->qideal),r); 282 rKillModifiedRing(r); 285 283 } 286 284 … … 360 358 poly res; 361 359 ring origR; 362 sip_sring tmpR;360 ring tmpR; 363 361 sparse_mat *det; 364 362 ideal II; 365 363 366 smRingChange(&origR,tmpR,bound);364 tmpR=smRingChange(&origR,bound); 367 365 II = idrCopyR(I, origR); 368 366 diag = smCleardenom(II); … … 373 371 delete det; 374 372 rChangeCurrRing(origR); 375 sm RingClean(origR,tmpR);373 smKillModifiedRing(tmpR); 376 374 return NULL; 377 375 } … … 380 378 delete det; 381 379 rChangeCurrRing(origR); 382 res = prMoveR(res, &tmpR);383 sm RingClean(origR,tmpR);380 res = prMoveR(res, tmpR); 381 smKillModifiedRing(tmpR); 384 382 if (nEqual(diag,h) == FALSE) 385 383 { … … 398 396 long bound; 399 397 ring origR; 400 sip_sring tmpR;398 ring tmpR; 401 399 sparse_mat *bareiss; 402 400 … … 407 405 if (t>s) t=s; 408 406 bound=2*smExpBound(I,c,r,t); 409 smRingChange(&origR,tmpR,bound);407 tmpR=smRingChange(&origR,bound); 410 408 ideal II = idrCopyR(I, origR); 411 409 bareiss = new sparse_mat(II); … … 425 423 delete bareiss; 426 424 rChangeCurrRing(origR); 427 II = idrMoveR(II, &tmpR);428 } 429 sm RingClean(origR,tmpR);425 II = idrMoveR(II,tmpR); 426 } 427 smKillModifiedRing(tmpR); 430 428 M=II; 431 429 } … … 437 435 long bound; 438 436 ring origR; 439 sip_sring tmpR;437 ring tmpR; 440 438 sparse_mat *bareiss; 441 439 … … 446 444 if (t>s) t=s; 447 445 bound=smExpBound(I,c,r,t); 448 smRingChange(&origR,tmpR,bound);446 tmpR=smRingChange(&origR,bound); 449 447 ideal II = idrCopyR(I, origR); 450 448 bareiss = new sparse_mat(II); … … 464 462 delete bareiss; 465 463 rChangeCurrRing(origR); 466 II = idrMoveR(II, &tmpR);467 } 468 sm RingClean(origR,tmpR);464 II = idrMoveR(II,tmpR); 465 } 466 smKillModifiedRing(tmpR); 469 467 M=II; 470 468 } … … 2589 2587 sparse_number_mat *linsolv; 2590 2588 ring origR; 2591 sip_sring tmpR;2589 ring tmpR; 2592 2590 ideal rr; 2593 2591 … … 2599 2597 I->rank = idRankFreeModule(I); 2600 2598 if (smCheckSolv(I)) return NULL; 2601 smRingChange(&origR,tmpR,1);2599 tmpR=smRingChange(&origR,1); 2602 2600 rr=idrCopyR(I,origR); 2603 2601 linsolv = new sparse_number_mat(rr); … … 2614 2612 rChangeCurrRing(origR); 2615 2613 if (rr!=NULL) 2616 rr = idrMoveR(rr, &tmpR);2617 sm RingClean(origR,tmpR);2614 rr = idrMoveR(rr,tmpR); 2615 smKillModifiedRing(tmpR); 2618 2616 return rr; 2619 2617 } -
kernel/sparsmat.h
re6651bb rab453da 31 31 ideal smCallSolv(ideal I); 32 32 33 void smRingChange(ring *, sip_sring &, long);34 void sm RingClean(ring, ip_sring &);33 ring smRingChange(ring *, long); 34 void smKillModifiedRing(ring r); 35 35 long smExpBound(ideal, int, int, int); 36 36 BOOLEAN smCheckDet(ideal, int, BOOLEAN);
Note: See TracChangeset
for help on using the changeset viewer.