Changeset a2faa3 in git
- Timestamp:
- Feb 17, 2011, 10:40:48 AM (13 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- 114346175271e866cec0aa2a83480ad2e9234f12
- Parents:
- 9f04ad074eb79dfc6f730e59b1ec34816c133461
- Location:
- Singular
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/iparith.cc
r9f04ad ra2faa3 67 67 #include <Singular/interpolation.h> 68 68 69 #include <Singular/blackbox.h> 70 #include <Singular/newstruct.h> 69 71 #include <Singular/ipshell.h> 70 72 #include <kernel/mpr_inout.h> 71 #include <Singular/blackbox.h>72 73 73 74 #ifdef HAVE_FANS … … 2471 2472 if(err) { pDelete(&p); WerrorS("no negative exponent allowed"); } 2472 2473 return err; 2474 } 2475 static 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; 2473 2482 } 2474 2483 static BOOLEAN jjPARSTR2(leftv res, leftv u, leftv v) … … 6284 6293 res->rtyp = IDEAL_CMD; 6285 6294 return FALSE; 6295 } 6296 static 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; 6286 6305 } 6287 6306 static BOOLEAN jjPREIMAGE(leftv res, leftv u, leftv v, leftv w) … … 7809 7828 } 7810 7829 PrintLn(); 7830 printBlackboxTypes(); 7811 7831 return FALSE; 7812 7832 } … … 8987 9007 { 8988 9008 // -- blackbox extensions: 8989 8990 9009 // return 0; 9010 return blackboxIsCmd(n,tok); 8991 9011 } 8992 9012 } -
Singular/newstruct.cc
r9f04ad ra2faa3 60 60 } 61 61 } 62 lists 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 } 62 84 void * newstruct_Copy(blackbox*b, void *d) 63 85 { 64 86 lists n1=(lists)d; 65 return (void*)lCopy (n1);87 return (void*)lCopy_newstruct(n1); 66 88 } 67 89 … … 79 101 n1->Clean(); n1=NULL; 80 102 } 81 lists n2=(lists)r->CopyD(); 103 lists n2=(lists)r->Data(); 104 n2=lCopy_newstruct(n2); 82 105 if (l->rtyp==IDHDL) 83 106 { … … 95 118 return TRUE; 96 119 } 97 BOOLEAN newstruct_OpM(int op, leftv res, leftv args);98 99 120 100 121 BOOLEAN newstruct_Op2(int op, leftv res, leftv a1, leftv a2) … … 170 191 return blackboxDefaultOp2(op,res,a1,a2); 171 192 } 193 172 194 // BOOLEAN opM(int op, leftv res, leftv args) 173 195 BOOLEAN newstruct_OpM(int op, leftv res, leftv args) … … 189 211 return TRUE; 190 212 } 213 191 214 void newstruct_destroy(blackbox *b, void *d) 192 215 { … … 232 255 return FALSE; 233 256 } 257 234 258 void newstruct_setup(const char *n, newstruct_desc d ) 235 259 { … … 323 347 return res; 324 348 } 325 349 newstruct_desc newstructChildFromString(const char *p, const char *s) 350 { 351 // not yet 352 return NULL; 353 } -
Singular/newstruct.h
r9f04ad ra2faa3 6 6 void newstruct_setup(const char * name, newstruct_desc d); 7 7 newstruct_desc newstructFromString(const char *s); 8 newstruct_desc newstructChildFromString(const char *p, const char *s); 8 9 9 10 #endif -
Singular/table.h
r9f04ad ra2faa3 606 606 //,{D(jjRES), MRES_CMD, LIST_CMD, MODUL_CMD, INT_CMD, NO_PLURAL |ALLOW_RING} 607 607 ,{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} 608 609 ,{D(jjRES), MRES_CMD, RESOLUTION_CMD, IDEAL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING} 609 610 ,{D(jjRES), MRES_CMD, RESOLUTION_CMD, MODUL_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING} … … 734 735 ,{ jjWRONG3 , JET_CMD, POLY_CMD, POLY_CMD, INT_CMD, INT_CMD, ALLOW_PLURAL |ALLOW_RING} 735 736 ,{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} 736 739 ,{D(jjLIFTSTD3), LIFTSTD_CMD,IDEAL_CMD, IDEAL_CMD, MATRIX_CMD, MODUL_CMD, ALLOW_PLURAL |ALLOW_RING} 737 740 ,{D(jjLIFTSTD3), LIFTSTD_CMD,MODUL_CMD, MODUL_CMD, MATRIX_CMD, MODUL_CMD, ALLOW_PLURAL |ALLOW_RING} … … 745 748 ,{D(jjRES3), MRES_CMD, NONE, MODUL_CMD, INT_CMD, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING} 746 749 #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} 749 751 ,{D(jjPREIMAGE), PREIMAGE_CMD, IDEAL_CMD, RING_CMD, ANY_TYPE, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING} 750 752 ,{D(jjPREIMAGE), PREIMAGE_CMD, IDEAL_CMD, QRING_CMD, ANY_TYPE, ANY_TYPE, ALLOW_PLURAL |ALLOW_RING} … … 869 871 { // name-string alias tokval toktype 870 872 { "$INVALID$", 0, -1, 0}, 873 { "LIB", 0, LIB_CMD , SYSVAR}, 871 874 #ifdef HAVE_FANS 872 875 // { "addadj", 0, ADDADJ_CMD, CMD_M}, … … 986 989 { "leadexp", 0, LEADEXP_CMD , CMD_1}, 987 990 { "leadmonom", 0, LEADMONOM_CMD , CMD_1}, 988 { "LIB", 0, LIB_CMD , SYSVAR},989 991 { "lift", 0, LIFT_CMD , CMD_23}, 990 992 { "liftstd", 0, LIFTSTD_CMD , CMD_23}, … … 1019 1021 { "nameof", 0, NAMEOF_CMD , CMD_1}, 1020 1022 { "names", 0, NAMES_CMD , CMD_M}, 1023 { "newstruct", 0, NEWSTRUCT_CMD , CMD_23}, 1021 1024 #ifdef HAVE_PLURAL 1022 1025 { "ncalgebra", 2, NCALGEBRA_CMD , CMD_2}, -
Singular/tok.h
r9f04ad ra2faa3 120 120 NAMEOF_CMD, 121 121 NAMES_CMD, 122 NEWSTRUCT_CMD, 122 123 NCALGEBRA_CMD, 123 124 NC_ALGEBRA_CMD,
Note: See TracChangeset
for help on using the changeset viewer.