Changeset 7256f9 in git
- Timestamp:
- Dec 31, 2002, 5:17:23 PM (21 years ago)
- Branches:
- (u'spielwiese', '4a9821a93ffdc22a6696668bd4f6b8c9de3e6c5f')
- Children:
- 4acd2ae5f31c7fb017f79de4a8163ed7529916c9
- Parents:
- a202ed4f9ad4e4c56871df569f5ae0a8d7f250d5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/tgb.cc
ra202ed r7256f9 5 5 6 6 #include "tgb.h" 7 static int posInPairs (sorted_pair_node** p, int pn, sorted_pair_node* qe,calc_dat* c,int an=0) 8 { 9 if(pn==0) return 0; 10 11 int length=pn-1; 12 int i; 13 //int an = 0; 14 int en= length; 15 16 if (pair_better(qe,p[en],c)) 17 return length+1; 18 19 while(1) 20 { 21 //if (an >= en-1) 22 if(en-1<=an) 23 { 24 if (pair_better(p[an],qe,c)) return an; 25 return en; 26 } 27 i=(an+en) / 2; 28 if (pair_better(p[i],qe,c)) 29 en=i; 30 else an=i; 31 } 32 } 33 sorted_pair_node** merge(sorted_pair_node** p, int pn,sorted_pair_node **q, int qn,calc_dat* c){ 34 int i; 35 int* a= (int*) omalloc(qn*sizeof(int)); 36 37 int lastpos=0; 38 for(i=0;i<qn;i++){ 39 lastpos=posInPairs(p,pn-1,q[i],c, max(lastpos-1,0)); 40 // cout<<lastpos<<"\n"; 41 a[i]=lastpos; 42 43 } 44 p=(sorted_pair_node**) realloc(p,(pn+qn)*sizeof(sorted_pair_node*)); 45 for(i=qn-1;i>=0;i--){ 46 size_t size; 47 if(qn-1>i) 48 size=(a[i+1]-a[i])*sizeof(sorted_pair_node*); 49 else 50 size=(pn-a[i])*sizeof(sorted_pair_node*); //as indices begin with 0 51 memmove (p+a[i]+(1+i), p+a[i], size); 52 p[a[i]+i]=q[i]; 53 } 54 omfree(a); 55 return p; 56 } 7 57 static BOOLEAN trivial_syzygie(int pos1,int pos2,poly bound,calc_dat* c){ 8 58 … … 2054 2104 omfree(c->lengths); 2055 2105 printf("calculated %d NFs\n",c->normal_forms); 2106 I=c->S; 2107 IDELEMS(I)=c->n; 2056 2108 omfree(c); 2109 2057 2110 return(I); 2058 2111 }
Note: See TracChangeset
for help on using the changeset viewer.