Changeset c1d486a in git for kernel/ideals.cc
- Timestamp:
- Mar 4, 2008, 3:58:35 PM (15 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- 195803b9ee6b9462fd5f3b42805bf7ecb3e8f865
- Parents:
- 11d9d6ab9c7d17ce683526d3a3a51adbe2cb96a0
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/ideals.cc
r11d9d6a rc1d486a 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: ideals.cc,v 1.4 6 2008-02-01 13:45:37Singular Exp $ */4 /* $Id: ideals.cc,v 1.47 2008-03-04 14:58:35 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT - all basic methods to manipulate ideals … … 2308 2308 tHomog hom; 2309 2309 intvec * w; 2310 sip_sring tmpR;2310 ring tmpR; 2311 2311 ring origR = currRing; 2312 2312 … … 2370 2370 2371 2371 // fill in tmp ring to get back the data later on 2372 tmpR = *origR; 2373 tmpR.order = ord; 2374 tmpR.block0 = block0; 2375 tmpR.block1 = block1; 2376 tmpR.wvhdl = wv; 2377 rComplete(&tmpR, 1); 2372 tmpR = rCopy0(origR); 2373 omFree(tmpR->order); tmpR->order = ord; 2374 omFree(tmpR->block0); tmpR->block0 = block0; 2375 omFree(tmpR->block1); tmpR->block1 = block0; 2376 for(k=rBlocks(origR); k>=0; k--) 2377 { if (tmpR->wvhdl[k]!=NULL) omFree(tmpR->wvhdl[k]); } 2378 omFree(tmpR->wvhdl); 2379 tmpR->wvhdl = wv; 2380 rComplete(tmpR, 1); 2378 2381 2379 2382 #ifdef HAVE_PLURAL … … 2382 2385 { 2383 2386 BOOLEAN bBAD = FALSE; 2384 if ( nc_rComplete(origR, &tmpR) )2387 if ( nc_rComplete(origR, tmpR) ) 2385 2388 { 2386 2389 Werror("error in nc_rComplete"); … … 2390 2393 { 2391 2394 /* tests the admissibility of the new elim. ordering */ 2392 if ( nc_CheckOrdCondition( (&tmpR)->nc->D, &tmpR) )2395 if ( nc_CheckOrdCondition( tmpR->nc->D, tmpR) ) 2393 2396 { 2394 2397 Werror("no elimination is possible: ordering condition is violated"); … … 2399 2402 { 2400 2403 // cleanup 2401 omFree((ADDRESS)wv[0]); 2402 omFreeSize((ADDRESS)wv,ordersize*sizeof(int**)); 2403 omFreeSize((ADDRESS)ord,ordersize*sizeof(int)); 2404 omFreeSize((ADDRESS)block0,ordersize*sizeof(int)); 2405 omFreeSize((ADDRESS)block1,ordersize*sizeof(int)); 2406 rUnComplete(&tmpR); 2404 rDelete(tmpR); 2407 2405 if (w!=NULL) 2408 2406 { … … 2415 2413 // change into the new ring 2416 2414 //pChangeRing(pVariables,currRing->OrdSgn,ord,block0,block1,wv); 2417 rChangeCurrRing( &tmpR);2415 rChangeCurrRing(tmpR); 2418 2416 2419 2417 h = idInit(IDELEMS(h1),h1->rank); … … 2437 2435 { 2438 2436 l=pVariables; 2439 while ((l>0) && (p_GetExp( hh->m[k],l, &tmpR)*pGetExp(delVar,l)==0)) l--;2437 while ((l>0) && (p_GetExp( hh->m[k],l,tmpR)*pGetExp(delVar,l)==0)) l--; 2440 2438 if (l==0) 2441 2439 { … … 2446 2444 IDELEMS(h3) += 16; 2447 2445 } 2448 h3->m[j] = prCopyR( hh->m[k], &tmpR);2449 } 2450 } 2451 id_Delete(&hh, &tmpR);2446 h3->m[j] = prCopyR( hh->m[k], tmpR); 2447 } 2448 } 2449 id_Delete(&hh, tmpR); 2452 2450 idSkipZeroes(h3); 2453 omFree((ADDRESS)wv[0]); 2454 omFreeSize((ADDRESS)wv,ordersize*sizeof(int**)); 2455 omFreeSize((ADDRESS)ord,ordersize*sizeof(int)); 2456 omFreeSize((ADDRESS)block0,ordersize*sizeof(int)); 2457 omFreeSize((ADDRESS)block1,ordersize*sizeof(int)); 2458 rUnComplete(&tmpR); 2451 rDelete(tmpR); 2459 2452 if (w!=NULL) 2460 2453 delete w;
Note: See TracChangeset
for help on using the changeset viewer.