Changeset cf74099 in git
- Timestamp:
- Nov 17, 1999, 7:22:56 PM (24 years ago)
- Branches:
- (u'spielwiese', '828514cf6e480e4bafc26df99217bf2a1ed1ef45')
- Children:
- 3922e33bebab34b16642a6fbb08394474eac7666
- Parents:
- 68297e89c8c24c38656fd40ec740a03c2fdff568
- Location:
- Singular
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/feread.cc
r68297e rcf74099 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: feread.cc,v 1. 29 1999-11-15 14:37:01Singular Exp $ */4 /* $Id: feread.cc,v 1.30 1999-11-17 18:22:52 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: input from ttys, simulating fgets … … 361 361 if (res!=0) 362 362 { 363 Warn("dynamic loading failed: %d\n",res); 363 if (res==1) 364 WarnS("dynamic loading of libreadline failed"); 365 else 366 Warn("dynamic loading failed: %d\n",res); 364 367 fe_fgets_stdin=fe_fgets_stdin_emu; 365 368 return fe_fgets_stdin_emu(pr,s,size); -
Singular/grammar.y
r68297e rcf74099 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: grammar.y,v 1.7 4 1999-11-15 17:20:04 obachmanExp $ */4 /* $Id: grammar.y,v 1.75 1999-11-17 18:22:53 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: SINGULAR shell grammatik … … 326 326 #endif 327 327 prompt_char = '>'; 328 328 if (sdb_flags & 2) { sdb_flags=1; YYERROR; } 329 329 if(siCntrlc) 330 330 { … … 365 365 siq=0; 366 366 #endif 367 367 yyInRingConstruction = FALSE; 368 368 currentVoice->ifsw=0; 369 369 if (inerror) … … 381 381 yyerror(""); 382 382 yyerrok; 383 384 385 386 } 387 383 if ((sdb_flags & 1) && currentVoice->pi!=NULL) 384 { 385 currentVoice->pi->trace_flag |=1; 386 } 387 else 388 388 if (myynest>0) 389 389 { … … 400 400 exitVoice(); 401 401 } 402 402 if (sdb_flags &2) sdb_flags=1; 403 403 } 404 404 ; … … 478 478 memset(&tmp,0,sizeof(tmp)); 479 479 i=iiTestConvert((t=v->Typ()),POLY_CMD); 480 if((i==0) || (iiConvert(t /*v->Typ()*/,POLY_CMD,i,v,&tmp))) 480 if((i==0) || (iiConvert(t /*v->Typ()*/,POLY_CMD,i,v,&tmp))) 481 481 { 482 482 pDelete((poly *)&$$.data); … … 664 664 if(iiExprArith1(&$$,&$3,INTMAT_CMD)) YYERROR; 665 665 } 666 | RING_CMD '(' rlist ',' rlist ',' ordering ')' 667 { 668 if(iiExprArith3(&$$,RING_CMD,&$3,&$5,&$7)) YYERROR; 669 } 670 | RING_CMD '(' expr ')' 671 { 672 if(iiExprArith1(&$$,&$3,RING_CMD)) YYERROR; 673 } 666 674 | quote_start expr quote_end 667 675 { … … 950 958 UNKNOWN_IDENT 951 959 { 952 // let rInit take care of any errors 960 // let rInit take care of any errors 953 961 $$=rOrderName($1); 954 962 } … … 1129 1137 else 1130 1138 { 1131 #ifdef HAVE_NAMESPACES1132 if (v->packhdl != NULL)1133 {1134 namespaceroot->push( IDPACKAGE(v->packhdl) , IDID(v->packhdl));1135 killhdl((idhdl)v->data);1136 namespaceroot->pop();1137 }1138 else1139 #endif /* HAVE_NAMESPACES */1140 killhdl((idhdl)v->data);1139 #ifdef HAVE_NAMESPACES 1140 if (v->packhdl != NULL) 1141 { 1142 namespaceroot->push( IDPACKAGE(v->packhdl) , IDID(v->packhdl)); 1143 killhdl((idhdl)v->data); 1144 namespaceroot->pop(); 1145 } 1146 else 1147 #endif /* HAVE_NAMESPACES */ 1148 killhdl((idhdl)v->data); 1141 1149 } 1142 1150 v=v->next; … … 1332 1340 } 1333 1341 #endif /* HAVE_NAMESPACES */ 1334 idhdl b= 1335 rInit(ring_name, /* ringname */ 1336 &$4, /* characteristik and list of parameters*/ 1342 ring b= 1343 rInit(&$4, /* characteristik and list of parameters*/ 1337 1344 &$6, /* names of ringvariables */ 1338 1345 &$8); /* ordering */ 1339 #ifdef HAVE_NAMESPACES 1340 if(do_pop) namespaceroot->pop(); 1341 #endif /* HAVE_NAMESPACES */ 1342 yyInRingConstruction = FALSE; 1343 if (b==NULL) 1346 idhdl newRingHdl=NULL; 1347 if (b!=NULL) 1348 { 1349 newRingHdl=enterid(ring_name, myynest, RING_CMD, &IDROOT); 1350 if (newRingHdl!=NULL) 1351 { 1352 Free(IDRING(newRingHdl),sizeof(ip_sring)); 1353 IDRING(newRingHdl)=b; 1354 } 1355 else 1356 { 1357 rKill(b); 1358 } 1359 } 1360 #ifdef HAVE_NAMESPACES 1361 if(do_pop) namespaceroot->pop(); 1362 #endif /* HAVE_NAMESPACES */ 1363 yyInRingConstruction = FALSE; 1364 if (newRingHdl==NULL) 1344 1365 { 1345 1366 MYYERROR("cannot make ring"); … … 1347 1368 else 1348 1369 { 1349 rSetHdl( b);1370 rSetHdl(newRingHdl); 1350 1371 } 1351 1372 } … … 1354 1375 BOOLEAN do_pop = FALSE; 1355 1376 char *ring_name = $2.name; 1356 #ifdef HAVE_NAMESPACES1357 if (((sleftv)$2).req_packhdl != NULL)1358 {1359 namespaceroot->push( IDPACKAGE(((sleftv)$2).req_packhdl) , "");1360 do_pop = TRUE;1361 if( (((sleftv)$2).req_packhdl != NULL) &&1377 #ifdef HAVE_NAMESPACES 1378 if (((sleftv)$2).req_packhdl != NULL) 1379 { 1380 namespaceroot->push( IDPACKAGE(((sleftv)$2).req_packhdl) , ""); 1381 do_pop = TRUE; 1382 if( (((sleftv)$2).req_packhdl != NULL) && 1362 1383 (((sleftv)$2).packhdl != ((sleftv)$2).req_packhdl)) 1363 ring_name = mstrdup($2.name);1364 }1365 #endif /* HAVE_NAMESPACES */1384 ring_name = mstrdup($2.name); 1385 } 1386 #endif /* HAVE_NAMESPACES */ 1366 1387 if (!inerror) rDefault(ring_name); 1367 #ifdef HAVE_NAMESPACES 1368 if(do_pop) namespaceroot->pop(); 1369 #endif /* HAVE_NAMESPACES */ 1370 yyInRingConstruction = FALSE; 1371 } 1372 | DRING_CMD { yyInRingConstruction = TRUE; } 1373 elemexpr cmdeq 1374 rlist ',' /* description of coeffs */ 1375 rlist ',' /* var names */ 1376 ordering /* list of (multiplier ordering (weight(s))) */ 1377 { 1378 #ifdef DRING 1379 BOOLEAN do_pop = FALSE; 1380 idhdl h; 1381 char *ring_name = $3.name; 1382 #ifdef HAVE_NAMESPACES 1383 if (((sleftv)$3).req_packhdl != NULL) 1384 { 1385 namespaceroot->push( IDPACKAGE(((sleftv)$3).req_packhdl) , ""); 1386 do_pop = TRUE; 1387 if( (((sleftv)$2).req_packhdl != NULL) && 1388 (((sleftv)$3).packhdl != ((sleftv)$3).req_packhdl)) 1389 ring_name = mstrdup($3.name); 1390 } 1391 #endif /* HAVE_NAMESPACES */ 1392 h=rInit($3.name, /* ringname */ 1393 &$5, /* characteristik and list of parameters*/ 1394 &$7, /* names of ringvariables */ 1395 &$9, /* ordering */ 1396 TRUE); /* is a dring */ 1397 #ifdef HAVE_NAMESPACES 1398 if(do_pop) namespaceroot->pop(); 1399 #endif /* HAVE_NAMESPACES */ 1400 if(h==NULL) 1401 { 1402 YYERROR; 1403 } 1404 rSetHdl(h); 1405 setFlag(h,FLAG_DRING); 1406 rDSet(); 1407 #endif 1408 yyInRingConstruction = FALSE; 1388 #ifdef HAVE_NAMESPACES 1389 if(do_pop) namespaceroot->pop(); 1390 #endif /* HAVE_NAMESPACES */ 1391 yyInRingConstruction = FALSE; 1409 1392 } 1410 1393 ; -
Singular/iparith.cc
r68297e rcf74099 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: iparith.cc,v 1.18 6 1999-11-15 17:20:08 obachmanExp $ */4 /* $Id: iparith.cc,v 1.187 1999-11-17 18:22:54 Singular Exp $ */ 5 5 6 6 /* … … 4238 4238 } 4239 4239 #endif 4240 static BOOLEAN jjRING3(leftv res, leftv u, leftv v, leftv w) 4241 { 4242 res->data=(void *)rInit(u,v,w); 4243 return (res->data==NULL); 4244 } 4240 4245 static BOOLEAN jjSTATUS3(leftv res, leftv u, leftv v, leftv w) 4241 4246 { … … 4334 4339 ,{jjWRONG3, RESULTANT_CMD, POLY_CMD,POLY_CMD, POLY_CMD, POLY_CMD } 4335 4340 #endif 4341 ,{jjRING3, RING_CMD, RING_CMD, DEF_CMD, DEF_CMD, DEF_CMD } 4336 4342 #ifdef HAVE_SPECTRUM 4337 4343 ,{semicProc3, SEMIC_CMD, INT_CMD, LIST_CMD, LIST_CMD, INT_CMD } -
Singular/ring.cc
r68297e rcf74099 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: ring.cc,v 1.8 3 1999-11-17 10:51:02 obachmanExp $ */4 /* $Id: ring.cc,v 1.84 1999-11-17 18:22:55 Singular Exp $ */ 5 5 6 6 /* … … 483 483 // NOTE: * makes new ring to current ring, on success 484 484 // * considers input sleftv's as read-only 485 idhdl rInit(char *s, sleftv* pn, sleftv* rv, sleftv* ord) 485 //idhdl rInit(char *s, sleftv* pn, sleftv* rv, sleftv* ord) 486 ring rInit(sleftv* pn, sleftv* rv, sleftv* ord) 486 487 { 487 488 int ch; … … 637 638 rTest(R); 638 639 639 // try to enter the ring into the name list //640 // try to enter the ring into the name list 640 641 // need to clean up sleftv here, before this ring can be set to 641 642 // new currRing or currRing can be killed beacuse new ring has … … 644 645 if (rv != NULL) rv->CleanUp(); 645 646 if (ord != NULL) ord->CleanUp(); 646 if ((tmp = enterid(s, myynest, RING_CMD, &IDROOT))==NULL)647 goto rInitError;648 649 memcpy(IDRING(tmp),R,sizeof(*R));647 //if ((tmp = enterid(s, myynest, RING_CMD, &IDROOT))==NULL) 648 // goto rInitError; 649 650 //memcpy(IDRING(tmp),R,sizeof(*R)); 650 651 // set current ring 651 FreeSizeOf(R, ip_sring); 652 return tmp; 652 //FreeSizeOf(R, ip_sring); 653 //return tmp; 654 return R; 653 655 654 656 // error case: … … 1732 1734 * DOES NOT CALL rComplete 1733 1735 */ 1734 static ring rCopy0(ring r, BOOLEAN copy_qideal = TRUE, 1736 static ring rCopy0(ring r, BOOLEAN copy_qideal = TRUE, 1735 1737 BOOLEAN copy_ordering = TRUE) 1736 1738 { … … 1788 1790 } 1789 1791 res->idroot = NULL; 1790 if (r->qideal!=NULL) 1792 if (r->qideal!=NULL) 1791 1793 { 1792 1794 if (copy_qideal) res->qideal= idCopy(r->qideal); … … 3071 3073 if (r->order[0] == ringorder_s) 3072 3074 { 3073 if (r->pCompIndex == r->ExpESize-3) 3075 if (r->pCompIndex == r->ExpESize-3) 3074 3076 r->pOrdIndex = r->ExpLSize-3; 3075 3077 else 3076 3078 r->pOrdIndex = r->ExpLSize-2; 3077 3079 } 3078 else if (r->pCompIndex == r->ExpESize-1) 3080 else if (r->pCompIndex == r->ExpESize-1) 3079 3081 r->pOrdIndex=r->ExpLSize-2; 3080 else 3082 else 3081 3083 r->pOrdIndex=r->ExpLSize-1; 3082 3084 #endif … … 3095 3097 if (r->order[0] == ringorder_s && r->typ[0].data.syz.limit > 0) 3096 3098 { 3097 Free(r->typ[0].data.syz.syz_index, 3099 Free(r->typ[0].data.syz.syz_index, 3098 3100 (r->typ[0].data.syz.limit +1)*sizeof(int)); 3099 3101 } … … 3280 3282 // where R has a certain property. P might be equal r in which case r 3281 3283 // had already this property 3282 // 3284 // 3283 3285 // Without argument, these functions work on currRing and change it, 3284 3286 // if necessary … … 3289 3291 { 3290 3292 ring r = rAssureSyzComp(currRing); 3291 if (r != currRing) 3293 if (r != currRing) 3292 3294 { 3293 3295 ring old_ring = currRing; 3294 3296 rChangeCurrRing(r, TRUE); 3295 if (old_ring->qideal != NULL) 3297 if (old_ring->qideal != NULL) 3296 3298 { 3297 3299 r->qideal = idrCopyR_NoSort(old_ring->qideal, old_ring); … … 3322 3324 3323 3325 int ** wvhdl =(int **)Alloc0((i+1)*sizeof(int**)); 3324 for(j=i;j>0;j--) 3326 for(j=i;j>0;j--) 3325 3327 { 3326 3328 if (r->wvhdl[j-1] != NULL) … … 3335 3337 return res; 3336 3338 } 3337 3339 3338 3340 3339 3341 // use this for global orderings consisting of two blocks … … 3342 3344 int r_blocks = rBlocks(currRing); 3343 3345 int i; 3344 3345 assume(b1 == ringorder_c || b1 == ringorder_C || 3346 b2 == ringorder_c || b1 == ringorder_C || 3346 3347 assume(b1 == ringorder_c || b1 == ringorder_C || 3348 b2 == ringorder_c || b1 == ringorder_C || 3347 3349 b2 == ringorder_S); 3348 3350 3349 3351 if (r_blocks == 2 && currRing->order[0] == b1 && currRing->order[2] == 0) 3350 3352 return currRing; 3351 3353 3352 3354 ring res = rCopy0(currRing, FALSE, FALSE); 3353 3355 res->order = (int*)Alloc0(3*sizeof(int)); … … 3407 3409 { 3408 3410 currRing->typ[0].data.syz.syz_index = (int*) 3409 ReAlloc(currRing->typ[0].data.syz.syz_index, 3411 ReAlloc(currRing->typ[0].data.syz.syz_index, 3410 3412 (currRing->typ[0].data.syz.limit+1)*sizeof(int), 3411 3413 (k+1)*sizeof(int)); … … 3413 3415 for (i=currRing->typ[0].data.syz.limit + 1; i<= k; i++) 3414 3416 { 3415 currRing->typ[0].data.syz.syz_index[i] = 3417 currRing->typ[0].data.syz.syz_index[i] = 3416 3418 currRing->typ[0].data.syz.curr_index; 3417 3419 } … … 3449 3451 } 3450 3452 } 3451 3452 -
Singular/ring.h
r68297e rcf74099 7 7 * ABSTRACT - the interpreter related ring operations 8 8 */ 9 /* $Id: ring.h,v 1.4 1 1999-11-17 10:51:04 obachmanExp $ */9 /* $Id: ring.h,v 1.42 1999-11-17 18:22:56 Singular Exp $ */ 10 10 11 11 /* includes */ … … 18 18 void rChangeCurrRing(ring r, BOOLEAN complete = TRUE); 19 19 void rSetHdl(idhdl h, BOOLEAN complete = TRUE); 20 idhdl rInit(char *s,sleftv* pn, sleftv* rv, sleftv* ord);20 ring rInit(sleftv* pn, sleftv* rv, sleftv* ord); 21 21 idhdl rDefault(char *s); 22 22 int rIsRingVar(char *n); … … 143 143 } 144 144 145 typedef enum rRingOrder_t 145 typedef enum rRingOrder_t 146 146 { 147 147 ringorder_no = 0, … … 187 187 188 188 inline int rGetCurrSyzLimit() 189 { return (currRing->order[0] == ringorder_s ? 189 { return (currRing->order[0] == ringorder_s ? 190 190 currRing->typ[0].data.syz.limit : 0);} 191 191 … … 199 199 // Assume: i<= syzIndex_limit 200 200 int rGetMaxSyzComp(int i); 201 201 202 202 BOOLEAN rHasSimpleOrder(ring r); 203 203 // returns TRUE, if simple lp or ls ordering
Note: See TracChangeset
for help on using the changeset viewer.