Changeset bc2ffb in git for Singular/iparith.cc


Ignore:
Timestamp:
Apr 5, 2019, 3:15:11 PM (5 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
f2051805b69b8fb17a6b2da657a6a290d2e69e43
Parents:
6b29f27d00172371b96eb5f545db8d0a6fe74d75
Message:
chg: syz computes module weights via "isHomog" (+tests)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/iparith.cc

    r6b29f27 rbc2ffb  
    22302230          c_par_names=currRing->cf->extRing->names;
    22312231        }
    2232         if (!rIsLPRing(r))
    2233         {
     2232        if (!rIsLPRing(r))
     2233        {
    22342234          maFindPerm(r->names,       r->N,       r_par_names, r_par,
    22352235                     currRing->names,currRing->N,c_par_names, c_par,
    22362236                     perm,par_perm, currRing->cf->type);
    22372237        }
    2238         #ifdef HAVE_SHIFTBBA
    2239         else
    2240         {
     2238        #ifdef HAVE_SHIFTBBA
     2239        else
     2240        {
    22412241          maFindPermLP(r->names,       r->N,       r_par_names, r_par,
    22422242                     currRing->names,currRing->N,c_par_names, c_par,
    22432243                     perm,par_perm, currRing->cf->type,r->isLPring);
    2244         }
    2245         #endif
     2244        }
     2245        #endif
    22462246      }
    22472247      else
     
    26072607  if (w_u!=NULL)
    26082608  {
     2609    //PrintS("modulo: wu:");w_u->show(INTVEC_CMD);PrintLn();
    26092610    w_u=ivCopy(w_u);
    26102611    hom=isHomog;
    26112612  }
     2613  //else PrintS("modulo: wu:none\n");
    26122614  intvec *w_v=(intvec *)atGet(v,"isHomog",INTVEC_CMD);
    26132615  if (w_v!=NULL)
    26142616  {
     2617    //PrintS("modulo: wv:");w_v->show(INTVEC_CMD);PrintLn();
    26152618    w_v=ivCopy(w_v);
    26162619    hom=isHomog;
    26172620  }
     2621  //else PrintS("modulo: wv:none\n");
    26182622  if ((w_u!=NULL) && (w_v==NULL))
    26192623    w_v=ivCopy(w_u);
     
    50685072  return FALSE;
    50695073}
    5070 #if 1
     5074#if 0
    50715075static BOOLEAN jjSYZYGY(leftv res, leftv v)
    50725076{
     
    50815085static BOOLEAN jjSYZYGY(leftv res, leftv v)
    50825086{
    5083   intvec *w=(intvec *)atGet(v,"isHomog",INTVEC_CMD);
     5087  intvec *ww=(intvec *)atGet(v,"isHomog",INTVEC_CMD);
     5088  intvec *w=NULL;
    50845089  ideal v_id=(ideal)v->Data();
    50855090  tHomog hom=testHomog;
    50865091  int add_row_shift=0;
    5087   if (w!=NULL)
    5088   {
    5089     w=ivCopy(w);
    5090     add_row_shift=w->min_in();
    5091     (*w)-=add_row_shift;
    5092     if (idTestHomModule(v_id,currRing->qideal,w))
     5092  if (ww!=NULL)
     5093  {
     5094    if (idTestHomModule(v_id,currRing->qideal,ww))
     5095    {
     5096      w=ivCopy(ww);
     5097      add_row_shift=w->min_in();
     5098      (*w)-=add_row_shift;
    50935099      hom=isHomog;
     5100    }
    50945101    else
    50955102    {
    50965103      //WarnS("wrong weights");
    5097       delete w; w=NULL;
     5104      delete ww; ww=NULL;
    50985105      hom=testHomog;
    50995106    }
    51005107  }
    5101   res->data = (char *)idSyzygies(v_id,hom,&w);
    5102   if (w!=NULL)
    5103   {
    5104     atSet(res,omStrDup("isHomog"),w,INTVEC_CMD);
    5105   }
     5108  else
     5109  {
     5110    if (v->Typ()==IDEAL_CMD)
     5111      if (idHomIdeal(v_id,currRing->qideal))
     5112        hom=isHomog;
     5113  }
     5114  ideal S=idSyzygies(v_id,hom,&w);
     5115  res->data = (char *)S;
     5116  if (hom==isHomog)
     5117  {
     5118    int vl=S->rank;
     5119    intvec *vv=new intvec(vl);
     5120    if ((v->Typ()==IDEAL_CMD)||(ww==NULL))
     5121    {
     5122      for(int i=0;i<vl;i++)
     5123      {
     5124        if (v_id->m[i]!=NULL)
     5125          (*vv)[i]=p_Deg(v_id->m[i],currRing);
     5126      }
     5127    }
     5128    else
     5129    {
     5130      p_SetModDeg(ww, currRing);
     5131      for(int i=0;i<vl;i++)
     5132      {
     5133        if (v_id->m[i]!=NULL)
     5134          (*vv)[i]=currRing->pFDeg(v_id->m[i],currRing);
     5135      }
     5136      p_SetModDeg(NULL, currRing);
     5137    }
     5138    if (idTestHomModule(S,currRing->qideal,vv))
     5139      atSet(res,omStrDup("isHomog"),vv,INTVEC_CMD);
     5140    else
     5141      delete vv;
     5142  }
     5143  if (w!=NULL) delete w;
    51065144  return FALSE;
    51075145}
Note: See TracChangeset for help on using the changeset viewer.