Changeset 7256f9 in git


Ignore:
Timestamp:
Dec 31, 2002, 5:17:23 PM (21 years ago)
Author:
Michael Brickenstein <bricken@…>
Branches:
(u'spielwiese', '4a9821a93ffdc22a6696668bd4f6b8c9de3e6c5f')
Children:
4acd2ae5f31c7fb017f79de4a8163ed7529916c9
Parents:
a202ed4f9ad4e4c56871df569f5ae0a8d7f250d5
Message:
+ bugfixing


git-svn-id: file:///usr/local/Singular/svn/trunk@6391 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/tgb.cc

    ra202ed r7256f9  
    55
    66#include "tgb.h"
     7static 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}
     33sorted_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}
    757static BOOLEAN trivial_syzygie(int pos1,int pos2,poly bound,calc_dat* c){
    858
     
    20542104  omfree(c->lengths);
    20552105  printf("calculated %d NFs\n",c->normal_forms);
     2106  I=c->S;
     2107  IDELEMS(I)=c->n;
    20562108  omfree(c);
     2109 
    20572110  return(I);
    20582111}
Note: See TracChangeset for help on using the changeset viewer.