Changeset 90adf83 in git


Ignore:
Timestamp:
Aug 14, 2019, 5:45:22 PM (5 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
81a41a5469a773c93de24cfa043771eb7c07082b
Parents:
777d4bb19a3e35537640bec3fc2db8899f9ffc8b
Message:
fix: rComposeOrder
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/ipshell.cc

    r777d4b r90adf83  
    16921692        case ringorder_Ds:
    16931693        case ringorder_lp:
     1694        case ringorder_rp:
     1695        case ringorder_ls:
    16941696          for(;j>=0; j--) (*iv)[j]=1;
    16951697          break;
     
    22052207        case ringorder_Ds:
    22062208        case ringorder_lp:
     2209        case ringorder_ls:
     2210        case ringorder_rp:
    22072211          for(;j>=0; j--) (*iv)[j]=1;
    22082212          break;
     
    25322536          continue;
    25332537        }
    2534         if ((vv->m[1].Typ()!=INTVEC_CMD) && (vv->m[1].Typ()!=INT_CMD))
     2538        if ((vv->m[1].Typ()!=INTVEC_CMD) && (vv->m[1].Typ()!=INT_CMD)
     2539        && (vv->m[1].Typ()!=INTMAT_CMD))
    25352540        {
    25362541          PrintS(lString(vv));
     
    25622567        intvec *iv;
    25632568        if (vv->m[1].Typ()==INT_CMD)
    2564           iv=new intvec((int)(long)vv->m[1].Data(),(int)(long)vv->m[1].Data());
     2569        {
     2570          int l=si_max(1,(int)(long)vv->m[1].Data());
     2571          iv=new intvec(l);
     2572          for(int i=0;i<l;i++) (*iv)[i]=1;
     2573        }
    25652574        else
    2566           iv=ivCopy((intvec*)vv->m[1].Data()); //assume INTVEC
     2575          iv=ivCopy((intvec*)vv->m[1].Data()); //assume INTVEC/INTMAT
    25672576        int iv_len=iv->length();
    25682577        if (iv_len==0)
    25692578        {
    2570           Werror("empty intvec for ordering %d (%s)",j_in_R,rSimpleOrdStr(R->order[j_in_R]));
     2579          Werror("empty intvec for ordering %d (%s)",j_in_R+1,rSimpleOrdStr(R->order[j_in_R]));
    25712580          return TRUE;
     2581        }
     2582        if (R->order[j_in_R]==ringorder_M)
     2583        {
     2584          if (vv->m[1].rtyp==INTMAT_CMD) iv->makeVector();
     2585          iv_len=iv->length();
    25722586        }
    25732587        if ((R->order[j_in_R]!=ringorder_s)
     
    26362650           case ringorder_Dp:
    26372651           case ringorder_rp:
     2652             #if 0
     2653             for (i=0; i<iv_len;i++)
     2654             {
     2655               if (((*iv)[i]!=1)&&(iv_len!=1))
     2656               {
     2657                 iv->show(1);
     2658                 Warn("ignore weight %d for ord %d (%s) at pos %d\n>>%s<<",
     2659                   (*iv)[i],j_in_R+1,rSimpleOrdStr(R->order[j_in_R]),i+1,my_yylinebuf);
     2660                 break;
     2661               }
     2662             }
     2663             #endif // break absfact.tst
    26382664             break;
    26392665           case ringorder_S:
Note: See TracChangeset for help on using the changeset viewer.