Changeset 7b2896 in git
- Timestamp:
- Feb 23, 2007, 9:34:40 AM (16 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'c18334b998a8adbf0013b8e1ce0824774019443e')
- Children:
- abce2eb6b4be7725a8a5bc3b6feeb4821927af5b
- Parents:
- 05023393670050d3a3678f07351eda09ade7a6eb
- Location:
- kernel
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/tgb.cc
r050233 r7b2896 5 5 * Computer Algebra System SINGULAR * 6 6 ****************************************/ 7 /* $Id: tgb.cc,v 1.14 7 2007-02-22 14:46:49bricken Exp $ */7 /* $Id: tgb.cc,v 1.148 2007-02-23 08:34:40 bricken Exp $ */ 8 8 /* 9 9 * ABSTRACT: slimgb and F4 implementation … … 2524 2524 2525 2525 SparseRow** srows=(SparseRow**) omalloc(pn*sizeof(SparseRow*)); 2526 2526 int non_zeros=0; 2527 2527 for(j=0;j<pn;j++){ 2528 2528 … … 2533 2533 2534 2534 2535 srows[ j]=noro_red_to_non_poly(h,h_len,&cache,c);2536 2535 srows[non_zeros]=noro_red_to_non_poly(h,h_len,&cache,c); 2536 if (srows[non_zeros]!=NULL) non_zeros++; 2537 2537 } 2538 2538 std::vector<DataNoroCacheNode*> irr_nodes; … … 2569 2569 //if (TEST_OPT_PROT) 2570 2570 // Print("Evaluate Rows \n"); 2571 2571 pn=non_zeros; 2572 2572 number_type* number_array=(number_type*) omalloc(n*pn*sizeof(number_type)); 2573 2573 memset(number_array,0,sizeof(number_type)*n*pn); … … 2582 2582 2583 2583 SparseRow* srow=srows[j]; 2584 if (srow){ 2584 2585 for(i=0;i<srow->len;i++){ 2585 2586 int idx=old_to_new_indices[srow->idx_array[i]]; … … 2587 2588 } 2588 2589 delete srow; 2589 2590 } 2590 2591 } 2591 2592 -
kernel/tgb_internal.h
r050233 r7b2896 5 5 * Computer Algebra System SINGULAR * 6 6 ****************************************/ 7 /* $Id: tgb_internal.h,v 1.5 7 2007-02-22 14:46:50 bricken Exp $ */7 /* $Id: tgb_internal.h,v 1.58 2007-02-23 08:34:40 bricken Exp $ */ 8 8 /* 9 9 * ABSTRACT: tgb internal .h file … … 583 583 nReducibleMonomials=0; 584 584 temp_term=pOne(); 585 tempBufferSize=3000; 586 tempBuffer=omalloc(tempBufferSize); 587 } 588 void ensureTempBufferSize(size_t size){ 589 if (tempBufferSize<size){ 590 tempBufferSize=2*size; 591 omfree(tempBuffer); 592 tempBuffer=omalloc(tempBufferSize); 593 } 585 594 } 586 595 #ifdef NORO_RED_ARRAY_RESERVER … … 604 613 omfree(recursionPolyBuffer); 605 614 #endif 615 omfree(tempBuffer); 606 616 } 607 617 608 618 int nIrreducibleMonomials; 609 619 int nReducibleMonomials; 620 void* tempBuffer; 621 size_t tempBufferSize; 610 622 protected: 611 623 DataNoroCacheNode* treeInsert(poly term,poly nf,int len){ … … 679 691 len=i; 680 692 //in the loop before nIrreducibleMonomials increases, so position here is important 681 storage_type* temp_array=(storage_type*) omalloc(cache->nIrreducibleMonomials*sizeof(storage_type)); 693 size_t temp_size_bytes=cache->nIrreducibleMonomials*sizeof(storage_type); 694 cache->ensureTempBufferSize(temp_size_bytes); 695 storage_type* temp_array=(storage_type*) cache->tempBuffer;//omalloc(cache->nIrreducibleMonomials*sizeof(storage_type)); 682 696 int temp_size=cache->nIrreducibleMonomials; 683 memset(temp_array,0, sizeof(storage_type)*cache->nIrreducibleMonomials);697 memset(temp_array,0,temp_size_bytes); 684 698 for(i=0;i<len;i++){ 685 699 MonRedResNP red=mon[i]; … … 715 729 int non_zeros=0; 716 730 for(i=0;i<cache->nIrreducibleMonomials;i++){ 717 if (!(temp_array[i]==0)){ 718 non_zeros++; 719 } 731 //if (!(temp_array[i]==0)){ 732 // non_zeros++; 733 //} 734 assume(((temp_array[i]!=0)==0)|| (((temp_array[i]!=0)==1))); 735 non_zeros+=(temp_array[i]!=0); 736 } 737 738 if (non_zeros==0){ 739 omfree(mon); 740 return NULL; 720 741 } 721 742 SparseRow* res=new SparseRow(non_zeros); … … 727 748 res->coef_array[pos]=(number) temp_array[i]; 728 749 729 pos++; 750 pos++; 751 non_zeros--; 752 if (non_zeros==0) break; 730 753 } 731 754 732 755 } 733 omfree(temp_array);756 //omfree(temp_array); 734 757 735 758 omfree(mon);
Note: See TracChangeset
for help on using the changeset viewer.