Changeset 2bcf4b in git


Ignore:
Timestamp:
Mar 24, 2017, 3:39:42 PM (7 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
d12a2904e34710ed91be3102e52a0b02fd919b86
Parents:
232b0953a6412f9a34b3e57519d0c19ff4cfb73c
Message:
fix: handling of s(..) in rCompose, rDecompose, rComplete
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • Singular/ipshell.cc

    r232b095 r2bcf4b  
    21552155    LLL->m[0].data=(void *)omStrDup(rSimpleOrdStr(r->order[i]));
    21562156
    2157     if(r->order[i] == ringorder_IS) //  || r->order[i] == ringorder_s || r->order[i] == ringorder_S)
     2157    if((r->order[i] == ringorder_IS)
     2158    || (r->order[i] == ringorder_s)) //|| r->order[i] == ringorder_S)
    21582159    {
    21592160      assume( r->block0[i] == r->block1[i] );
    21602161      const int s = r->block0[i];
    2161       assume( -2 < s && s < 2);
     2162      assume( (-2 < s && s < 2)||(r->order[i] != ringorder_IS));
    21622163
    21632164      iv=new intvec(1);
     
    25682569          iv=ivCopy((intvec*)vv->m[1].Data()); //assume INTVEC
    25692570        int iv_len=iv->length();
    2570         R->block1[j_in_R]=si_max(R->block0[j_in_R],R->block0[j_in_R]+iv_len-1);
    2571         if (R->block1[j_in_R]>R->N)
     2571        if (R->order[j_in_R]!=ringorder_s)
    25722572        {
    2573           R->block1[j_in_R]=R->N;
    2574           iv_len=R->block1[j_in_R]-R->block0[j_in_R]+1;
     2573          R->block1[j_in_R]=si_max(R->block0[j_in_R],R->block0[j_in_R]+iv_len-1);
     2574          if (R->block1[j_in_R]>R->N)
     2575          {
     2576            R->block1[j_in_R]=R->N;
     2577            iv_len=R->block1[j_in_R]-R->block0[j_in_R]+1;
     2578          }
     2579          //Print("block %d from %d to %d\n",j,R->block0[j], R->block1[j]);
    25752580        }
    2576         //Print("block %d from %d to %d\n",j,R->block0[j], R->block1[j]);
    25772581        int i;
    25782582        switch (R->order[j_in_R])
     
    26322636
    26332637           case ringorder_s:
     2638             R->block1[j_in_R]=R->block0[j_in_R]=(*iv)[0];
     2639             rSetSyzComp(R->block0[j_in_R],R);
    26342640             break;
    26352641
  • kernel/ideals.cc

    r232b095 r2bcf4b  
    236236
    237237  ring orig_ring=currRing;
    238   ring syz_ring=rAssure_SyzOrder(orig_ring,TRUE); rChangeCurrRing(syz_ring);
    239   rSetSyzComp(length, syz_ring);
     238  ring syz_ring=rAssure_SyzOrder(orig_ring,TRUE);
     239  rSetSyzComp(length,syz_ring);
     240  rChangeCurrRing(syz_ring);
    240241
    241242  while ((j>0) && (first->m[j-1]==NULL)) j--;
     
    375376
    376377  ring orig_ring=currRing;
    377   ring syz_ring=rAssure_SyzOrder(orig_ring,TRUE); rChangeCurrRing(syz_ring);
    378   rSetSyzComp(syzComp, syz_ring);
     378  ring syz_ring=rAssure_SyzOrder(orig_ring,TRUE);
     379  rSetSyzComp(syzComp,syz_ring);
     380  rChangeCurrRing(syz_ring);
    379381
    380382  bigmat = idInit(j,(k+1)*maxrk);
     
    558560  assume(currRing != NULL);
    559561  ring orig_ring=currRing;
    560   ring syz_ring=rAssure_SyzComp(orig_ring,TRUE); rChangeCurrRing(syz_ring);
    561 
    562   if (setSyzComp)
    563     rSetSyzComp(k,syz_ring);
     562  ring syz_ring=rAssure_SyzComp(orig_ring,TRUE);
     563  if (setSyzComp) rSetSyzComp(k,syz_ring);
     564  rChangeCurrRing(syz_ring);
    564565
    565566  if (orig_ring != syz_ring)
     
    683684  assume(currRing != NULL);
    684685  ring orig_ring=currRing;
    685   ring syz_ring=rAssure_SyzComp(orig_ring,TRUE); rChangeCurrRing(syz_ring);
    686 
     686  ring syz_ring=rAssure_SyzComp(orig_ring,TRUE);
    687687  rSetSyzComp(k,syz_ring);
     688  rChangeCurrRing(syz_ring);
    688689
    689690  if (orig_ring != syz_ring)
     
    751752
    752753  ring orig_ring = currRing;
    753   ring syz_ring = rAssure_SyzOrder(orig_ring,TRUE);  rChangeCurrRing(syz_ring);
     754  ring syz_ring = rAssure_SyzOrder(orig_ring,TRUE);
    754755  rSetSyzComp(k,syz_ring);
     756  rChangeCurrRing(syz_ring);
    755757
    756758  ideal s_h1=h1;
     
    947949
    948950  ring orig_ring=currRing;
    949   ring syz_ring=rAssure_SyzOrder(orig_ring,TRUE);  rChangeCurrRing(syz_ring);
     951  ring syz_ring=rAssure_SyzOrder(orig_ring,TRUE);
    950952  rSetSyzComp(k,syz_ring);
     953  rChangeCurrRing(syz_ring);
    951954
    952955  ideal s_mod, s_temp;
     
    13061309
    13071310  ring orig_ring=currRing;
    1308   ring syz_ring=rAssure_SyzOrder(orig_ring,TRUE);  rChangeCurrRing(syz_ring);
     1311  ring syz_ring=rAssure_SyzOrder(orig_ring,TRUE);
    13091312  rSetSyzComp(kmax-1,syz_ring);
     1313  rChangeCurrRing(syz_ring);
    13101314  if (orig_ring!=syz_ring)
    13111315  //  s_h4 = idrMoveR_NoSort(s_h4,orig_ring, syz_ring);
     
    20812085
    20822086  ring orig_ring=currRing;
    2083   ring syz_ring=rAssure_SyzOrder(orig_ring, TRUE); rChangeCurrRing(syz_ring);
     2087  ring syz_ring=rAssure_SyzOrder(orig_ring, TRUE);
     2088  rSetSyzComp(length,syz_ring);
     2089  rChangeCurrRing(syz_ring);
    20842090  // we can use OPT_RETURN_SB only, if syz_ring==orig_ring,
    20852091  // therefore we disable OPT_RETURN_SB for modulo:
     
    20882094  //  rSetSyzComp(IDELEMS(h2)+length, syz_ring);
    20892095  //else
    2090     rSetSyzComp(length, syz_ring);
     2096  //  rSetSyzComp(length, syz_ring);
    20912097  ideal s_temp;
    20922098
     
    26202626}
    26212627
    2622 GbVariant syGetAlgorithm(char *n, const ring r, const ideal M)
     2628GbVariant syGetAlgorithm(char *n, const ring r, const ideal /*M*/)
    26232629{
    26242630  GbVariant alg=GbDefault;
  • libpolys/polys/monomials/ring.cc

    r232b095 r2bcf4b  
    23462346  ord_struct.data.syz.place=place;
    23472347  ord_struct.data.syz.limit=syz_comp;
    2348   ord_struct.data.syz.syz_index = (int*) omAlloc0((syz_comp+1)*sizeof(int));
     2348  if (syz_comp>0)
     2349    ord_struct.data.syz.syz_index = (int*) omAlloc0((syz_comp+1)*sizeof(int));
     2350  else
     2351    ord_struct.data.syz.syz_index = NULL;
    23492352  ord_struct.data.syz.curr_index = 1;
    23502353  o[place]= -1;
     
    49964999  if ((r->typ!=NULL) && (r->typ[0].ord_typ==ro_syz))
    49975000  {
     5001    r->block0[0]=r->block1[0] = k;
    49985002    if( k == r->typ[0].data.syz.limit )
    49995003      return; // nothing to do
     
    50405044#endif
    50415045  }
    5042   else
    5043   if ((r->order[0]!=ringorder_c) && (k!=0)) // ???
     5046  else if (r->order[0]==ringorder_s)
     5047  {
     5048    r->block0[0] = r->block1[0] = k;
     5049  }
     5050  else if (r->order[0]!=ringorder_c)
    50445051  {
    50455052    dReportError("syzcomp in incompatible ring");
Note: See TracChangeset for help on using the changeset viewer.