Changeset 634b60 in git


Ignore:
Timestamp:
Feb 18, 2003, 6:14:59 PM (21 years ago)
Author:
Michael Brickenstein <bricken@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
aa9fb6f8881d66822a503d2cb47d89c6add6be24
Parents:
c2c418bf9e9970a136f359e9c9c80e43741188fc
Message:
* bricken: adding additional reductors feature to multired


git-svn-id: file:///usr/local/Singular/svn/trunk@6518 2c84dea3-7e68-4137-9b89-c4e89433aadc
Location:
Singular
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • Singular/tgb.cc

    rc2c418 r634b60  
    77//       "e"
    88//       multiple rings
     9//       shorten_tails und dessen Aufrufe pruefen wlength!!!
    910#include "tgb.h"
    1011#define OM_KEEP 0
     
    680681  h=omalloc(n*sizeof(char*));
    681682  c->states=(char**) h;
    682  
    683   c->deg=(int **) omalloc(n*sizeof(int*));
    684683  h=omalloc(n*sizeof(int));
    685684  c->lengths=(int*) h;
     
    822821  c->gcd_of_terms=(poly*) omrealloc(c->gcd_of_terms, c->n *sizeof(poly));
    823822  c->gcd_of_terms[i]=gcd_of_terms(h,c->r);
    824   c->deg=(int**) omrealloc(c->deg, c->n * sizeof(int*));
    825823  c->rep[i]=i;
    826824  hp=omalloc(i*sizeof(char));
     
    830828    exit(1);
    831829  }
    832   c->deg[i]=(int*) omalloc(i*sizeof(int));
    833830  hp=omrealloc(c->S->m,c->n*sizeof(poly));
    834831  if (hp!=NULL){
     
    840837  c->short_Exps[i]=p_GetShortExpVector(h,c->r);
    841838  for (j=0;j<i;j++){
    842     c->deg[i][j]=pLcmDeg(c->S->m[i],c->S->m[j]);
    843839    if (c->rep[j]==j){
    844840      //check product criterion
     
    15651561  omfree(c->states);
    15661562  omfree(c->lengths);
     1563
     1564
     1565  omfree(c->short_Exps);
     1566  omfree(c->T_deg);
     1567  int i;
     1568  for(i=0;i<c->n;i++){
     1569    if(c->gcd_of_terms[i])
     1570      pDelete(&(c->gcd_of_terms[i]));
     1571  }
     1572  omfree(c->gcd_of_terms);
     1573
     1574  omfree(c->apairs);
    15671575  printf("calculated %d NFs\n",c->normal_forms);
    15681576  printf("applied %i product crit, %i extended_product crit \n", c->easy_product_crit, c->extended_product_crit);
     
    19041912struct find_erg{
    19051913  poly expand;
     1914  int expand_length;
    19061915  int to_reduce_u;
    19071916  int to_reduce_l;
     
    19541963    {
    19551964      if (erg.to_reduce_u>erg.to_reduce_l){
     1965
    19561966        int i;
    19571967        int quality_a=quality_of_pos_in_strat_S(erg.reduce_by,c);
     
    19741984        }
    19751985      }
     1986      else
     1987      {
     1988        assume(erg.to_reduce_u==erg.to_reduce_l);
     1989        int quality_a=quality_of_pos_in_strat_S(erg.reduce_by,c);
     1990        int qc=guess_quality(los[erg.to_reduce_u],c);
     1991        if(qc<quality_a){
     1992          BOOLEAN exp=FALSE;
     1993          if(qc<=2)
     1994            exp=TRUE;
     1995          else {
     1996            if (qc<quality_a/2)
     1997              exp=TRUE;
     1998            else
     1999              if(erg.reduce_by<c->n/4)
     2000                exp=TRUE;
     2001          }
     2002          if (exp){
     2003            poly clear_into;
     2004           
     2005            kBucketClear(los[erg.to_reduce_u].bucket,&clear_into,&erg.expand_length);
     2006            erg.expand=pCopy(clear_into);
     2007            kBucketInit(los[erg.to_reduce_u].bucket,clear_into,erg.expand_length);
     2008            PrintS("e");
     2009           
     2010          }
     2011        }
     2012
     2013       
     2014      }
     2015     
    19762016      swap_roles=FALSE;
    19772017      return;
     
    22702310//   sort_region_down(los, 0, losl-1, c);
    22712311    //  qsort(los,losl,sizeof(red_object),red_object_better_gen);
     2312    if(erg.expand)
     2313      add_to_reductors(c,erg.expand,erg.expand_length);
    22722314  }
    22732315  return;
  • Singular/tgb.h

    rc2c418 r634b60  
    6565  long* short_Exps;
    6666  kStrategy strat;
    67   int** deg;
    6867  int* T_deg;
    6968  poly* gcd_of_terms;
Note: See TracChangeset for help on using the changeset viewer.