Changeset 6c4db17 in git


Ignore:
Timestamp:
Feb 3, 2010, 5:26:55 PM (13 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a657104b677b4c461d018cbf3204d72d34ad66a9')
Children:
40f802d6d4a86bc39b087948ef1c21fcaf01afca
Parents:
54c5581bde5de8f3d41ede0ba11f3ba4b1c1b9c2
Message:
option(qringNF), track 149

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

Legend:

Unmodified
Added
Removed
  • Singular/ChangeLog

    r54c558 r6c4db17  
    55  (install does not include profiling stuff any more)
    66- updated: doc w.r.t. option(...)
     7- new option: qringNF (track 149)
    78
    89Changes w.r.t 3-1-0-8:
  • Singular/attrib.cc

    r54c558 r6c4db17  
    262262    haveNoAttribute=FALSE;
    263263  }
    264   else if (((t=v->Typ())==RING_CMD)||(t==QRING_CMD))
     264  if (hasFlag(v,FLAG_QRING))
     265  {
     266    PrintS("attr:qringNF, type int\n");
     267    haveNoAttribute=FALSE;
     268  }
     269  if (((t=v->Typ())==RING_CMD)||(t==QRING_CMD))
    265270  {
    266271    PrintS("attr:global, type int\n");
     
    297302    res->data=(void *)(((ring)v->Data())->OrdSgn==1);
    298303  }
     304  else if (strcmp(name,"qringNF")==0)
     305  {
     306    res->rtyp=INT_CMD;
     307    res->data=(void *)(long)hasFlag(v,FLAG_QRING);
     308  }
    299309#ifdef HAVE_SHIFTBBA
    300310  else if ((strcmp(name,"isLPring")==0)
     
    352362    }
    353363  }
     364  else if (strcmp(name,"qringNF")==0)
     365  {
     366    if (c->Typ()!=INT_CMD)
     367    {
     368      WerrorS("attribute qringNF must be int");
     369      return TRUE;
     370    }
     371    if (((long)c->Data())!=0L)
     372    {
     373      if (h!=NULL) setFlag(h,FLAG_QRING);
     374      setFlag(v,FLAG_QRING);
     375    }
     376    else
     377    {
     378      if (h!=NULL) resetFlag(h,FLAG_QRING);
     379      resetFlag(v,FLAG_QRING);
     380    }
     381  }
    354382  else if ((strcmp(name,"rank")==0)&&(v->Typ()==MODUL_CMD))
    355383  {
  • Singular/ipassign.cc

    r54c558 r6c4db17  
    359359    }
    360360  }
     361  //if ((TEST_V_QRING) && (currQuotient!=NULL)) jjNormalizeQRingP(res);
    361362  return FALSE;
    362363}
     
    462463    setFlag(res,FLAG_STD);
    463464  }
     465  //if ((TEST_V_QRING) && (currQuotient!=NULL)) jjNormalizeQRingId(res);
    464466  return FALSE;
    465467}
     
    479481  pNormalize(I->m[0]);
    480482  res->data=(void *)I;
     483  //if ((TEST_V_QRING) && (currQuotient!=NULL)) jjNormalizeQRingId(res);
    481484  return FALSE;
    482485}
     
    490493  idNormalize((ideal)m);
    491494  res->data=(void *)m;
     495  //if ((TEST_V_QRING) && (currQuotient!=NULL)) jjNormalizeQRingId(res);
    492496  return FALSE;
    493497}
     
    968972  l1->CleanUp();
    969973  r->CleanUp();
     974  //if ((TEST_V_QRING) && (currQuotient!=NULL)) jjNormalizeQRingP(l);
    970975  return FALSE;
    971976}
     
    16171622  return nok;
    16181623}
     1624void jjNormalizeQRingId(leftv I)
     1625{
     1626  if ((currQuotient!=NULL) && (!hasFlag(I,FLAG_QRING)))
     1627  {
     1628    if (I->e==NULL)
     1629    {
     1630      ideal F=idInit(1,1);
     1631      ideal I0=(ideal)I->Data();
     1632      ideal II=kNF(F,currQuotient,I0);
     1633      idDelete(&F);
     1634      if ((I->rtyp==IDEAL_CMD)
     1635      || (I->rtyp==MODUL_CMD)
     1636      )
     1637      {
     1638        idDelete((ideal*)&(I0));
     1639        I->data=II;
     1640      }
     1641      else if (I->rtyp==IDHDL)
     1642      {
     1643        idhdl h=(idhdl)I->data;
     1644        idDelete((ideal*)&IDIDEAL(h));
     1645        IDIDEAL(h)=II;
     1646        setFlag(h,FLAG_QRING);
     1647      }
     1648      else
     1649      {
     1650        idDelete(&II);
     1651      }
     1652      setFlag(I,FLAG_QRING);
     1653    }
     1654  }
     1655}
     1656void jjNormalizeQRingP(leftv I)
     1657{
     1658  if ((currQuotient!=NULL) && (!hasFlag(I,FLAG_QRING)))
     1659  {
     1660    if (I->e==NULL)
     1661    {
     1662      ideal F=idInit(1,1);
     1663      poly II=kNF(F,currQuotient,(poly)I->Data());
     1664      idDelete(&F);
     1665      if ((I->rtyp==POLY_CMD)
     1666      || (I->rtyp==VECTOR_CMD))
     1667      {
     1668        pDelete((poly*)&(I->data));
     1669        I->data=II;
     1670      }
     1671      else if (I->rtyp==IDHDL)
     1672      {
     1673        idhdl h=(idhdl)I->data;
     1674        pDelete((poly*)&IDPOLY(h));
     1675        IDPOLY(h)=II;
     1676        setFlag(h,FLAG_QRING);
     1677      }
     1678      else
     1679      {
     1680        pDelete(&II);
     1681      }
     1682      setFlag(I,FLAG_QRING);
     1683    }
     1684  }
     1685}
    16191686BOOLEAN jjIMPORTFROM(leftv res, leftv u, leftv v)
    16201687{
  • Singular/ipid.h

    r54c558 r6c4db17  
    8989BOOLEAN checkPackage(package pack);
    9090idhdl packFindHdl(package r);
     91void jjNormalizeQRingId(leftv I);
     92void jjNormalizeQRingP(leftv I);
    9193
    9294#define FLAG_STD   0
    9395#define FLAG_TWOSTD  3
     96#define FLAG_QRING   4
    9497#define hasFlag(A,F) Sy_inset((F),(A)->flag)
    9598#define setFlag(A,F) (A)->flag|=Sy_bit(F)
  • Singular/subexpr.cc

    r54c558 r6c4db17  
    122122          iiWriteMatrix((matrix)d,n,2,spaces);
    123123          break;
    124         case MAP_CMD:
    125124        case MODUL_CMD:
    126125        case IDEAL_CMD:
     126          if ((TEST_V_QRING)  &&(currQuotient!=NULL))
     127          {
     128            jjNormalizeQRingId(this);
     129            d=Data();
     130          }
     131          // no break:
     132        case MAP_CMD:
    127133          iiWriteMatrix((matrix)d,n,1,spaces);
    128134          break;
    129135        case POLY_CMD:
    130136        case VECTOR_CMD:
     137          if ((TEST_V_QRING)  &&(currQuotient!=NULL))
     138          {
     139            jjNormalizeQRingP(this);
     140            d=Data();
     141          }
    131142          PrintNSpaces(spaces);
    132143          pWrite0((poly)d);
  • Singular/tesths.cc

    r54c558 r6c4db17  
    210210    basePackHdl=h;
    211211  }
    212   if (BVERBOSE(0))
     212  if (TEST_V_QUIET)
    213213  {
    214214    (printf)(
  • kernel/febase.cc

    r54c558 r6c4db17  
    4949extern "C" {
    5050BITSET  test=(BITSET)0;
    51 BITSET  verbose = 1
     51BITSET  verbose = Sy_bit(V_QUIET)
     52                  //| Sy_bit(V_QRING) // not default, as speed drops by 10 %
    5253                  | Sy_bit(V_REDEFINE)
    5354                  | Sy_bit(V_LOAD_LIB)
  • kernel/misc.cc

    r54c558 r6c4db17  
    7878    if (!tclmode)
    7979    #endif
    80       if (BVERBOSE(0))
     80      if (TEST_V_QUIET)
    8181      {
    8282        if (i==0)
  • kernel/options.h

    r54c558 r6c4db17  
    3333*/
    3434
     35#define V_QUIET       0
    3536#define V_QRING       1
    3637#define V_SHOW_MEM    2
     
    114115#define TEST_V_QRING               BVERBOSE(V_QRING)
    115116#define TEST_V_NSB                 BVERBOSE(V_NSB)
     117#define TEST_V_QUIET               BVERBOSE(V_QUIET)
    116118
    117119#define TEST_VERB_NSB              BVERBOSE(V_NSB)
Note: See TracChangeset for help on using the changeset viewer.