Changeset e3e129 in git


Ignore:
Timestamp:
Aug 14, 2015, 1:45:02 PM (8 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
Children:
74fe3587102ed73b3858258975abbe6d63139abfa70ae4b16c65be7f0b28fba01f121d5df879d49a
Parents:
9a124249fa498488e7fe6c086eea551c001e016f
git-author:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2015-08-14 13:45:02+02:00
git-committer:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2015-08-14 13:50:34+02:00
Message:
fix tr. #735, tr. #734 (definition of new aliases)
Files:
3 added
4 edited

Legend:

Unmodified
Added
Removed
  • Singular/ipid.cc

    r9a12424 re3e129  
    739739  return NULL;
    740740}
     741
     742BOOLEAN iiAlias(leftv p)
     743{
     744  if (iiCurrArgs==NULL)
     745  {
     746    Werror("not enough arguments for proc %s",VoiceName());
     747    p->CleanUp();
     748    return TRUE;
     749  }
     750  leftv h=iiCurrArgs;
     751  iiCurrArgs=h->next;
     752  h->next=NULL;
     753  if (h->rtyp!=IDHDL)
     754  {
     755    BOOLEAN res=iiAssign(p,h);
     756    h->CleanUp();
     757    omFreeBin((ADDRESS)h, sleftv_bin);
     758    return res;
     759  }
     760  if ((h->Typ()!=p->Typ()) &&(p->Typ()!=DEF_CMD))
     761  {
     762    WerrorS("type mismatch");
     763    return TRUE;
     764  }
     765  idhdl pp=(idhdl)p->data;
     766  switch(pp->typ)
     767  {
     768#ifdef SINGULAR_4_1
     769      case CRING_CMD:
     770        nKillChar((coeffs)pp);
     771        break;
     772#endif
     773      case DEF_CMD:
     774      case INT_CMD:
     775        break;
     776      case INTVEC_CMD:
     777      case INTMAT_CMD:
     778         delete IDINTVEC(pp);
     779         break;
     780      case NUMBER_CMD:
     781         nDelete(&IDNUMBER(pp));
     782         break;
     783      case BIGINT_CMD:
     784         n_Delete(&IDNUMBER(pp),coeffs_BIGINT);
     785         break;
     786      case MAP_CMD:
     787         {
     788           map im = IDMAP(pp);
     789           omFree((ADDRESS)im->preimage);
     790         }
     791         // continue as ideal:
     792      case IDEAL_CMD:
     793      case MODUL_CMD:
     794      case MATRIX_CMD:
     795          idDelete(&IDIDEAL(pp));
     796         break;
     797      case PROC_CMD:
     798      case RESOLUTION_CMD:
     799      case STRING_CMD:
     800         omFree((ADDRESS)IDSTRING(pp));
     801         break;
     802      case LIST_CMD:
     803         IDLIST(pp)->Clean();
     804         break;
     805      case LINK_CMD:
     806         omFreeBin(IDLINK(pp),sip_link_bin);
     807         break;
     808       // case ring: cannot happen
     809       default:
     810         Werror("unknown type %d",p->Typ());
     811         return TRUE;
     812  }
     813  pp->typ=ALIAS_CMD;
     814  IDDATA(pp)=(char*)h->data;
     815  int eff_typ=h->Typ();
     816  if ((RingDependend(eff_typ))
     817  || ((eff_typ==LIST_CMD) && (lRingDependend((lists)h->Data()))))
     818  {
     819    ipSwapId(pp,IDROOT,currRing->idroot);
     820  }
     821  h->CleanUp();
     822  omFreeBin((ADDRESS)h, sleftv_bin);
     823  return FALSE;
     824}
     825
  • Singular/ipshell.cc

    r9a12424 re3e129  
    166166  switch(IDTYP(h))
    167167  {
     168    case ALIAS_CMD: Print(" for %s",IDID((idhdl)IDDATA(h))); break;
    168169    case INT_CMD:   Print(" %d",IDINT(h)); break;
    169170    case INTVEC_CMD:Print(" (%d)",IDINTVEC(h)->length()); break;
     
    783784          v->rtyp=IDEAL_CMD;
    784785          char *tmp = theMap->preimage;
    785           theMap->preimage=(char*)1L;
     786          theMap->preimage=(char*)1L;
    786787          // map gets 1 as its rank (as an ideal)
    787788          v->data=fast_map(IDIDEAL(w), src_ring, (ideal)theMap, currRing);
     
    13261327  return res;
    13271328}
    1328 BOOLEAN iiAlias(leftv p)
    1329 {
    1330   if (iiCurrArgs==NULL)
    1331   {
    1332     Werror("not enough arguments for proc %s",VoiceName());
    1333     p->CleanUp();
    1334     return TRUE;
    1335   }
    1336   leftv h=iiCurrArgs;
    1337   iiCurrArgs=h->next;
    1338   h->next=NULL;
    1339   if (h->rtyp!=IDHDL)
    1340   {
    1341     BOOLEAN res=iiAssign(p,h);
    1342     h->CleanUp();
    1343     omFreeBin((ADDRESS)h, sleftv_bin);
    1344     return res;
    1345   }
    1346   if (h->Typ()!=p->Typ())
    1347   {
    1348     WerrorS("type mismatch");
    1349     return TRUE;
    1350   }
    1351   idhdl pp=(idhdl)p->data;
    1352   switch(pp->typ)
    1353   {
    1354 #ifdef SINGULAR_4_1
    1355       case CRING_CMD:
    1356         nKillChar((coeffs)pp);
    1357         break;
    1358 #endif
    1359       case INT_CMD:
    1360         break;
    1361       case INTVEC_CMD:
    1362       case INTMAT_CMD:
    1363          delete IDINTVEC(pp);
    1364          break;
    1365       case NUMBER_CMD:
    1366          nDelete(&IDNUMBER(pp));
    1367          break;
    1368       case BIGINT_CMD:
    1369          n_Delete(&IDNUMBER(pp),coeffs_BIGINT);
    1370          break;
    1371       case MAP_CMD:
    1372          {
    1373            map im = IDMAP(pp);
    1374            omFree((ADDRESS)im->preimage);
    1375          }
    1376          // continue as ideal:
    1377       case IDEAL_CMD:
    1378       case MODUL_CMD:
    1379       case MATRIX_CMD:
    1380           idDelete(&IDIDEAL(pp));
    1381          break;
    1382       case PROC_CMD:
    1383       case RESOLUTION_CMD:
    1384       case STRING_CMD:
    1385          omFree((ADDRESS)IDSTRING(pp));
    1386          break;
    1387       case LIST_CMD:
    1388          IDLIST(pp)->Clean();
    1389          break;
    1390       case LINK_CMD:
    1391          omFreeBin(IDLINK(pp),sip_link_bin);
    1392          break;
    1393        // case ring: cannot happen
    1394        default:
    1395          Werror("unknown type %d",p->Typ());
    1396          return TRUE;
    1397   }
    1398   pp->typ=ALIAS_CMD;
    1399   IDDATA(pp)=(char*)h->data;
    1400   h->CleanUp();
    1401   omFreeBin((ADDRESS)h, sleftv_bin);
    1402   return FALSE;
    1403 }
    1404 
    14051329static BOOLEAN iiInternalExport (leftv v, int toLev)
    14061330{
  • Tst/Short/alias.res.gz.uu

    r9a12424 re3e129  
    11begin 640 alias.res.gz
    2 M'XL(""2@A4\``V%L:6%S+G)E<P#M4\MNPC`0O.<K5E4/21N9V.%5(G)`O2!5
    3 MO=`;JE`H`1E9`=EN2XOX]ZX=<'P(53^@.22V=W9V=C.>O3Q.GP&`YO`TG<"-
    4 M5IH(OKS)@MDYPG+`PP6ON`ZC+#!?R',H!"\4J<I/HG2A'3K-P:V[!/9R]V9>
    5 MRS*T"2"XTE#(C8H<K$?@Z#9]8J--^2$!_;4O=^O09KD`30CP2@.',2C^7=KP
    6 MG+YZ"$;@Y#:>,(K")*\V(#$WB>$0PVK?I/5RX*NR$);ZT)SW\UJ]P&.S"'D,
    7 MS"LW\"H,R;EK@0!4-0JPE04NQH=@SNHM"PR+2WEHTEGB3X[YH^,1'(%G<')U
    8 M&?42L64+JU`C;2#8_)FJ\O10%^]Z%#V_=GJN;2==ES;\'X5$+_@B^A[#H/XS
    9 MVS%KXL/\0KA%!2SH='"\+0]J@]I;!K)MA20(,04L2W458H3&UALC;!6A\BKT
    10 MSMC!0.PC_D3)'+Z]$:O2^BB<3:(8*&S*JI2%WLD0W8_)YEJ9R_.N%FLN2B]/
    11 M:>O/]CO&/*>D";G,E=X;,Z:_3]:,+?V?[)7)IMY52O$J-30AC;+;X`<31!RO
    12 $+04`````
     2M'XL("`?2S54``V%L:6%S+G)E<P#M4SUOPC`0W?,K3JA#TD8F=O@J$1E0%Z2J
     3M"]U0A4()R%&4(,=M:1'_O6<G.!Y0H4.W9@#;=^_=NZ_Y\\/L"0!H#(^S*71D
     4M)4G.5YW(F3<6%@,^+GG!I>M%COJ'.(8DYTE%BO2#5#*1QCN,P9Q[!':B?%4_
     5MJ]35`,AY)2$1V\HS;GT"!W,9$&UMPX\(R,]=6FY<C3(&&A#@A00.$ZCX5ZK-
     6M"_IB>3`"1W.QA%$4)GBQ!8'8P(>]#^M="^O'P-=IDFOJ??L^B&OU.3ZK@\M]
     7M8%:XH15A1)JL<W1`56,'4UGB8;)W%JR^,D>Q&,A]"V>!73EFEXY[<``>P='$
     8M9=0"8LK:K4"-M'7!Y!NJPM)#C;UG4?3MV&$36U>Z#JWXWQ.!LV"+&%@,P[HS
     9MV82U]E%\(LQ0`7.Z72SOCQ^JA'K*8%,*R!0DNP`)$*)":_[B"F>5C*_G9XSE
     10M0)"X`G2KAD<YZR__91AFD)<*H+/1D^C.IYX/%+9ID8I$EL+%_4$:M9AJ_=ZJ
     11MY8;GZ5F&2NI9/[^OS)JZ,""G'M$[-=CAM5U2)0__^_,'_0FMY0YQN5M"EWK1
     12+C?,-2!0&\[\%````
    1313`
    1414end
  • Tst/Short/ok_s.lst

    r9a12424 re3e129  
    4747bug_tr724
    4848bug_732
     49bug_tr735
    4950bug_genus_etc
    5051conv_bi
Note: See TracChangeset for help on using the changeset viewer.