Changeset 10ed4a3 in git for kernel/ideals.cc
- Timestamp:
- Nov 12, 2008, 1:41:03 PM (15 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a657104b677b4c461d018cbf3204d72d34ad66a9')
- Children:
- f53fdfabd5c0e8bb4d1e132d057535be578c560a
- Parents:
- 8cd64eb888f63d0613de57a2244d263f37cdfc98
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/ideals.cc
r8cd64e r10ed4a3 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: ideals.cc,v 1.6 0 2008-11-05 15:40:38 wienandExp $ */4 /* $Id: ideals.cc,v 1.61 2008-11-12 12:41:03 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT - all basic methods to manipulate ideals … … 2439 2439 } 2440 2440 ord=(int*)omAlloc0(ordersize*sizeof(int)); 2441 block0=(int*)omAlloc (ordersize*sizeof(int));2442 block1=(int*)omAlloc (ordersize*sizeof(int));2441 block0=(int*)omAlloc0(ordersize*sizeof(int)); 2442 block1=(int*)omAlloc0(ordersize*sizeof(int)); 2443 2443 wv=(int**) omAlloc0(ordersize*sizeof(int**)); 2444 for (k=0;k<ordersize-1; k++) 2445 { 2446 block0[k+1] = origR->block0[k]; 2447 block1[k+1] = origR->block1[k]; 2448 ord[k+1] = origR->order[k]; 2449 if (origR->wvhdl[k]!=NULL) wv[k+1] = (int*) omMemDup(origR->wvhdl[k]); 2444 if (rIsPluralRing(origR)) // we have too keep the odering: it may be needed 2445 // for G-algebra 2446 { 2447 for (k=0;k<ordersize-1; k++) 2448 { 2449 block0[k+1] = origR->block0[k]; 2450 block1[k+1] = origR->block1[k]; 2451 ord[k+1] = origR->order[k]; 2452 if (origR->wvhdl[k]!=NULL) wv[k+1] = (int*) omMemDup(origR->wvhdl[k]); 2453 } 2454 } 2455 else 2456 { 2457 block0[1] = 1; 2458 block1[1] = pVariables; 2459 if (origR->OrdSgn==1) ord[1] = ringorder_wp; 2460 else ord[1] = ringorder_ws; 2461 wv[1]=(int*)omAlloc0(pVariables*sizeof(int)); 2462 double wNsqr = (double)2.0 / (double)pVariables; 2463 wFunctional = wFunctionalBuch; 2464 int *x= (int * )omAlloc(2 * (pVariables + 1) * sizeof(int)); 2465 int sl=IDELEMS(h1) - 1; 2466 wCall(h1->m, sl, x, wNsqr); 2467 for (sl = pVariables; sl!=0; sl--) 2468 wv[1][sl-1] = x[sl + pVariables + 1]; 2469 omFreeSize((ADDRESS)x, 2 * (pVariables + 1) * sizeof(int)); 2470 2471 #if 0 2472 for (k=0;k<ordersize-1; k++) 2473 { 2474 if ( (origR->order[k]==ringorder_c) 2475 || (origR->order[k]==ringorder_C)) 2476 { 2477 ord[2]=origR->order[k]; 2478 break; 2479 } 2480 } 2481 #else 2482 ord[2]=ringorder_C; 2483 #endif 2484 ord[3]=0; 2450 2485 } 2451 2486 block0[0] = 1; … … 2461 2496 // fill in tmp ring to get back the data later on 2462 2497 tmpR = rCopy0(origR,FALSE,FALSE); // qring==NULL 2498 //rUnComplete(tmpR); 2463 2499 tmpR->order = ord; 2464 2500 tmpR->block0 = block0; 2465 2501 tmpR->block1 = block1; 2466 2502 tmpR->wvhdl = wv; 2503 tmpR->p_Procs=NULL; 2467 2504 2468 2505 rComplete(tmpR, 1); … … 2487 2524 rChangeCurrRing(tmpR); 2488 2525 2489 h = idInit(IDELEMS(h1),h1->rank);2526 //h = idInit(IDELEMS(h1),h1->rank); 2490 2527 // fetch data from the old ring 2491 for (k=0;k<IDELEMS(h1);k++) h->m[k] = prCopyR( h1->m[k], origR); 2528 //for (k=0;k<IDELEMS(h1);k++) h->m[k] = prCopyR( h1->m[k], origR); 2529 h=idrCopyR(h1,origR,currRing); 2492 2530 // compute kStd 2493 2531 #if 1 2532 //rWrite(tmpR);PrintLn(); 2533 BITSET save=test; 2534 //test |=1; 2535 //Print("h: %d gen, rk=%d\n",IDELEMS(h),h->rank); 2536 //extern char * showOption(); 2537 //Print("%s\n",showOption()); 2494 2538 hh = kStd(h,NULL,hom,&w,hilb); 2539 test=save; 2495 2540 idDelete(&h); 2496 2541 #else … … 2516 2561 IDELEMS(h3) += 16; 2517 2562 } 2518 h3->m[j] = prCopyR( hh->m[k], tmpR); 2563 h3->m[j] = prMoveR( hh->m[k], tmpR); 2564 hh->m[k] = NULL; 2519 2565 } 2520 2566 }
Note: See TracChangeset
for help on using the changeset viewer.