Changeset a2faa3 in git


Ignore:
Timestamp:
Feb 17, 2011, 10:40:48 AM (13 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
Children:
114346175271e866cec0aa2a83480ad2e9234f12
Parents:
9f04ad074eb79dfc6f730e59b1ec34816c133461
Message:
new command newstruct

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

Legend:

Unmodified
Added
Removed
  • Singular/iparith.cc

    r9f04ad ra2faa3  
    6767#include <Singular/interpolation.h>
    6868
     69#include <Singular/blackbox.h>
     70#include <Singular/newstruct.h>
    6971#include <Singular/ipshell.h>
    7072#include <kernel/mpr_inout.h>
    71 #include <Singular/blackbox.h>
    7273
    7374#ifdef HAVE_FANS
     
    24712472  if(err) { pDelete(&p); WerrorS("no negative exponent allowed"); }
    24722473  return err;
     2474}
     2475static BOOLEAN jjNEWSTRUCT2(leftv res, leftv u, leftv v)
     2476{
     2477  // u: the name of the new type
     2478  // v: the elements
     2479  newstruct_desc d=newstructFromString((const char *)v->Data());
     2480  if (d!=NULL) newstruct_setup((const char *)u->Data(),d);
     2481  return d==NULL;
    24732482}
    24742483static BOOLEAN jjPARSTR2(leftv res, leftv u, leftv v)
     
    62846293  res->rtyp = IDEAL_CMD;
    62856294  return FALSE;
     6295}
     6296static BOOLEAN jjNEWSTRUCT3(leftv res, leftv u, leftv v, leftv w)
     6297{
     6298  // u: the name of the new type
     6299  // v: the parent type
     6300  // w: the elements
     6301  newstruct_desc d=newstructChildFromString((const char *)v->Data(),
     6302                                            (const char *)w->Data());
     6303  if (d!=NULL) newstruct_setup((const char *)u->Data(),d);
     6304  return d==NULL;
    62866305}
    62876306static BOOLEAN jjPREIMAGE(leftv res, leftv u, leftv v, leftv w)
     
    78097828  }
    78107829  PrintLn();
     7830  printBlackboxTypes();
    78117831  return FALSE;
    78127832}
     
    89879007      {
    89889008        // -- blackbox extensions:
    8989         // return 0;
    8990         return blackboxIsCmd(n,tok);
     9009        // return 0;
     9010        return blackboxIsCmd(n,tok);
    89919011      }
    89929012    }
  • Singular/newstruct.cc

    r9f04ad ra2faa3  
    6060  }
    6161}
     62lists lCopy_newstruct(lists L)
     63{
     64  lists N=(lists)omAlloc0Bin(slists_bin);
     65  int n=L->nr;
     66  ring save_ring=currRing;
     67  N->Init(n+1);
     68  for(;n>=0;n--)
     69  {
     70    if (RingDependend(L->m[n].rtyp)
     71    && (L->m[n].data!=NULL))
     72    {
     73      assume(L->m[n-1].rtyp==RING_CMD);
     74      if((L->m[n-1].data!=NULL)&&(L->m[n-1].data!=(void*)currRing))
     75        rChangeCurrRing((ring)(L->m[n-1].data));
     76      N->m[n].Copy(&L->m[n]);
     77    }
     78    else
     79      N->m[n].Copy(&L->m[n]);
     80  }
     81  if (currRing!=save_ring) rChangeCurrRing(save_ring);
     82  return N;
     83}
    6284void * newstruct_Copy(blackbox*b, void *d)
    6385{
    6486  lists n1=(lists)d;
    65   return (void*)lCopy(n1);
     87  return (void*)lCopy_newstruct(n1);
    6688}
    6789
     
    79101        n1->Clean(); n1=NULL;
    80102      }
    81       lists n2=(lists)r->CopyD();
     103      lists n2=(lists)r->Data();
     104      n2=lCopy_newstruct(n2);
    82105      if (l->rtyp==IDHDL)
    83106      {
     
    95118  return TRUE;
    96119}
    97 BOOLEAN newstruct_OpM(int op, leftv res, leftv args);
    98 
    99120
    100121BOOLEAN newstruct_Op2(int op, leftv res, leftv a1, leftv a2)
     
    170191  return blackboxDefaultOp2(op,res,a1,a2);
    171192}
     193
    172194// BOOLEAN opM(int op, leftv res, leftv args)
    173195BOOLEAN newstruct_OpM(int op, leftv res, leftv args)
     
    189211  return TRUE;
    190212}
     213
    191214void newstruct_destroy(blackbox *b, void *d)
    192215{
     
    232255  return FALSE;
    233256}
     257
    234258void newstruct_setup(const char *n, newstruct_desc d )
    235259{
     
    323347  return res;
    324348}
    325 
     349newstruct_desc newstructChildFromString(const char *p, const char *s)
     350{
     351  // not yet
     352  return NULL;
     353}
  • Singular/newstruct.h

    r9f04ad ra2faa3  
    66void newstruct_setup(const char * name, newstruct_desc d);
    77newstruct_desc newstructFromString(const char *s);
     8newstruct_desc newstructChildFromString(const char *p, const char *s);
    89
    910#endif
  • Singular/table.h

    r9f04ad ra2faa3  
    606606//,{D(jjRES),       MRES_CMD,       LIST_CMD,       MODUL_CMD,  INT_CMD, NO_PLURAL |ALLOW_RING}
    607607,{D(nuMPResMat),  MPRES_CMD,      MODUL_CMD,      IDEAL_CMD,  INT_CMD, NO_PLURAL |NO_RING}
     608,{D(jjNEWSTRUCT2),NEWSTRUCT_CMD,  NONE,           STRING_CMD, STRING_CMD, ALLOW_PLURAL |ALLOW_RING}
    608609,{D(jjRES),       MRES_CMD,       RESOLUTION_CMD, IDEAL_CMD,  INT_CMD, ALLOW_PLURAL |ALLOW_RING}
    609610,{D(jjRES),       MRES_CMD,       RESOLUTION_CMD, MODUL_CMD,  INT_CMD, ALLOW_PLURAL |ALLOW_RING}
     
    734735,{  jjWRONG3 ,         JET_CMD,    POLY_CMD,   POLY_CMD,   INT_CMD,    INT_CMD, ALLOW_PLURAL |ALLOW_RING}
    735736,{D(mpKoszul),         KOSZUL_CMD, MATRIX_CMD, INT_CMD,    INT_CMD,    IDEAL_CMD, NO_PLURAL |NO_RING}
     737,{D(jjLIFT3),          LIFT_CMD,   MATRIX_CMD, IDEAL_CMD,  IDEAL_CMD,  MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}
     738,{D(jjLIFT3),          LIFT_CMD,   MATRIX_CMD, MODUL_CMD,  MODUL_CMD,  MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}
    736739,{D(jjLIFTSTD3),       LIFTSTD_CMD,IDEAL_CMD,  IDEAL_CMD,  MATRIX_CMD, MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}
    737740,{D(jjLIFTSTD3),       LIFTSTD_CMD,MODUL_CMD,  MODUL_CMD,  MATRIX_CMD, MODUL_CMD, ALLOW_PLURAL |ALLOW_RING}
     
    745748,{D(jjRES3),           MRES_CMD,   NONE,       MODUL_CMD,  INT_CMD,    ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}
    746749#endif
    747 ,{D(jjLIFT3),          LIFT_CMD,   MATRIX_CMD, IDEAL_CMD,  IDEAL_CMD,  MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}
    748 ,{D(jjLIFT3),          LIFT_CMD,   MATRIX_CMD, MODUL_CMD,  MODUL_CMD,  MATRIX_CMD, ALLOW_PLURAL |ALLOW_RING}
     750,{D(jjNEWSTRUCT3),     NEWSTRUCT_CMD, NONE,     STRING_CMD, STRING_CMD, STRING_CMD, ALLOW_PLURAL |ALLOW_RING}
    749751,{D(jjPREIMAGE),       PREIMAGE_CMD, IDEAL_CMD, RING_CMD,  ANY_TYPE,   ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}
    750752,{D(jjPREIMAGE),       PREIMAGE_CMD, IDEAL_CMD, QRING_CMD, ANY_TYPE,   ANY_TYPE, ALLOW_PLURAL |ALLOW_RING}
     
    869871{  // name-string alias tokval          toktype
    870872  { "$INVALID$",   0, -1,                 0},
     873  { "LIB",         0, LIB_CMD ,           SYSVAR},
    871874  #ifdef HAVE_FANS
    872875//  { "addadj",      0, ADDADJ_CMD,         CMD_M},
     
    986989  { "leadexp",     0, LEADEXP_CMD ,       CMD_1},
    987990  { "leadmonom",   0, LEADMONOM_CMD ,     CMD_1},
    988   { "LIB",         0, LIB_CMD ,           SYSVAR},
    989991  { "lift",        0, LIFT_CMD ,          CMD_23},
    990992  { "liftstd",     0, LIFTSTD_CMD ,       CMD_23},
     
    10191021  { "nameof",      0, NAMEOF_CMD ,        CMD_1},
    10201022  { "names",       0, NAMES_CMD ,         CMD_M},
     1023  { "newstruct",   0, NEWSTRUCT_CMD ,     CMD_23},
    10211024  #ifdef HAVE_PLURAL
    10221025  { "ncalgebra",   2, NCALGEBRA_CMD ,     CMD_2},
  • Singular/tok.h

    r9f04ad ra2faa3  
    120120  NAMEOF_CMD,
    121121  NAMES_CMD,
     122  NEWSTRUCT_CMD,
    122123  NCALGEBRA_CMD,
    123124  NC_ALGEBRA_CMD,
Note: See TracChangeset for help on using the changeset viewer.