Changeset 58bbda in git
- Timestamp:
- Jun 17, 1997, 11:44:32 AM (27 years ago)
- Branches:
- (u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
- Children:
- 623e7ca4e8b2344c62d7c256c94ecdb52b6d1cdb
- Parents:
- 388fe1e36784de6985ec8bb9daeb7bd4f2c0c751
- Location:
- Singular
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/grammar.y
r388fe1e r58bbda 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: grammar.y,v 1.1 1 1997-06-11 13:26:10 Singular Exp $ */4 /* $Id: grammar.y,v 1.12 1997-06-17 09:44:20 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: SINGULAR shell grammatik … … 307 307 prompt_char = '>'; 308 308 currid = NULL; 309 if(siCntrlc) 310 { 311 siCntrlc=FALSE; 312 MYYERROR("abort..."); 313 } 309 314 if (errorreported) 310 315 { … … 316 321 expected_parms=FALSE; 317 322 noringvars = FALSE; 323 siCntrlc = FALSE; 318 324 } 319 325 ; 320 326 321 327 pprompt: 322 flowctrl /* if, while, for etc */328 flowctrl /* if, while, for, proc */ 323 329 | command ';' /* commands returning no value */ 324 330 {ifswitch[voice]=0;} … … 329 335 | declare_ip_variable ';' /* default initialization */ 330 336 { $1.CleanUp(); ifswitch[voice]=0;} 331 | filecmd 337 | filecmd ';' 332 338 {ifswitch[voice]=0;} 333 339 | returncmd … … 918 924 memcpy(v->next,&r,sizeof(sleftv)); 919 925 $$=$1; 926 } 927 | PROC_CMD elemexpr 928 { 929 #ifdef SIC 930 if (sic) 931 { 932 FreeL((ADDRESS)$2); 933 MYYERROR("not implemented"); 934 } 935 #endif 936 if (iiDeclCommand(&$$,&$2,myynest,PROC_CMD,&idroot,TRUE)) YYERROR; 920 937 } 921 938 ; … … 1059 1076 1060 1077 filecmd: 1061 '<' stringexpr ';'1078 '<' stringexpr 1062 1079 { if (iiPStart(NULL,$2,NULL)) YYERROR; } 1063 1080 ; … … 1527 1544 FreeL((ADDRESS)$3); 1528 1545 } 1529 | PROC_CMD elemexpr '=' expr ';'1530 {1531 #ifdef SIC1532 if (sic)1533 {1534 $4.CleanUp();1535 FreeL((ADDRESS)$2);1536 MYYERROR("not implemented");1537 }1538 #endif1539 sleftv v;1540 if ((iiDeclCommand(&v,&$2,myynest,PROC_CMD,&idroot,FALSE))1541 || (iiAssign(&v,&($4)))) YYERROR;1542 }1543 1546 | PROC_DEF STRINGTOK BLOCKTOK 1544 1547 { -
Singular/ideals.cc
r388fe1e r58bbda 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: ideals.cc,v 1.9 1997-06-17 09:44:22 Singular Exp $ */ 4 5 /* 5 6 * ABSTRACT - all basic methods to manipulate ideals … … 581 582 pEnlargeSet(&(e->m),IDELEMS(e),15); 582 583 IDELEMS(e) = 16; 583 h2 = std(h1, NULL,isNotHomog,NULL);584 h2 = std(h1,currQuotient,isNotHomog,NULL); 584 585 h3 = idMaxIdeal(); 585 586 h4=idMult(h2,h3); 586 587 idDelete(&h3); 587 h3=std(h4, NULL,isNotHomog,NULL);588 h3=std(h4,currQuotient,isNotHomog,NULL); 588 589 k = IDELEMS(h3); 589 590 while ((k > 0) && (h3->m[k-1] == NULL)) k--; … … 614 615 idDelete(&h3); 615 616 idDelete(&h4); 616 if (currQuotient) 617 { 618 h2=kNF(e,NULL,currQuotient); 617 if (currQuotient!=NULL) 618 { 619 h3=idInit(1,e->rank); 620 h2=kNF(h3,currQuotient,e); 621 idDelete(&h3); 619 622 idDelete(&e); 620 623 e=h2; … … 1421 1424 if (idIs0(h1)) 1422 1425 return idInit(1,h1->rank); 1423 idSkipZeroes(h1);1424 1426 h3=idPrepare(h1,quot,h,&k,"gen,&i,&w); 1425 1427 if (w!=NULL) delete w; … … 1431 1433 } 1432 1434 j = IDELEMS(h1); 1433 while ((j>0) && (h1->m[j-1] == NULL))1434 j--;1435 1435 idDelete((ideal*)ma); 1436 1436 *ma = mpNew(j,i); -
Singular/ipassign.cc
r388fe1e r58bbda 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: ipassign.cc,v 1.13 1997-06-17 09:44:25 Singular Exp $ */ 5 4 6 /* 5 7 * ABSTRACT: interpreter: … … 107 109 { 108 110 #ifdef HAVE_TCL 109 if (!tclmode) 111 if (!tclmode) 110 112 #endif 111 113 pShortOut=(int)a->Data(); … … 271 273 return TRUE; 272 274 } 273 } 275 } 274 276 } 275 277 else … … 467 469 ,{jiA_STRING, STRING_CMD, STRING_CMD } 468 470 ,{jiA_STRING, PROC_CMD, STRING_CMD } 471 ,{jiA_STRING, PROC_CMD, PROC_CMD } 469 472 ,{jiA_POLY, VECTOR_CMD, VECTOR_CMD } 470 473 ,{jiA_INTVEC, INTVEC_CMD, INTVEC_CMD } … … 490 493 #ifdef HAVE_RTIMER 491 494 ,{jjRTIMER, VRTIMER, INT_CMD } 492 #endif 495 #endif 493 496 ,{jjMAXDEG, VMAXDEG, INT_CMD } 494 497 ,{jjMAXMULT, VMAXMULT, INT_CMD } … … 501 504 /*=================== operations ============================*/ 502 505 /*2 503 * assign a = b 506 * assign a = b 504 507 */ 505 508 static BOOLEAN jiAssign_1(leftv l, leftv r) … … 511 514 return TRUE; 512 515 } 513 516 514 517 int lt=l->Typ(); 515 518 if((lt==0)&&(l->name!=NULL)) … … 523 526 return TRUE; 524 527 } 525 528 526 529 int i=0; 527 530 BOOLEAN nok=FALSE; … … 549 552 if ((l->data==r->data)&&(l->e==NULL)&&(r->e==NULL)) 550 553 return FALSE; 551 } 554 } 555 leftv ld=l; 556 if ((l->rtyp==IDHDL)&&(lt!=QRING_CMD)&&(lt!=RING_CMD)) 557 ld=(leftv)l->data; 552 558 while (((dAssign[i].res!=lt) 553 559 || (dAssign[i].arg!=rt)) … … 556 562 { 557 563 BOOLEAN b; 558 leftv ld=l;559 if ((l->rtyp==IDHDL)&&(lt!=QRING_CMD)&&(lt!=RING_CMD))560 ld=(leftv)l->data;561 564 b=dAssign[i].p(ld,r,l->e); 565 if(l!=ld) /* i.e. l is IDHDL, l->data is ld */ 566 { 567 l->flag=ld->flag; 568 l->attribute=ld->attribute; 569 } 562 570 return b; 563 571 } … … 578 586 if(!failed) 579 587 { 580 if((l->rtyp==IDHDL)&&(lt!=QRING_CMD)&&(lt!=RING_CMD)) 581 failed=dAssign[i].p((leftv)l->data,rn,l->e); 582 else 583 failed= dAssign[i].p(l,rn,l->e); 584 } 588 failed= dAssign[i].p(ld,rn,l->e); 589 } 585 590 // everything done, clean up temp. variables 586 591 rn->CleanUp(); … … 593 598 else 594 599 { 600 if(l!=ld) /* i.e. l is IDHDL, l->data is ld */ 601 { 602 l->flag=ld->flag; 603 l->attribute=ld->attribute; 604 } 595 605 // everything ok, return 596 606 return FALSE; … … 922 932 nok=jiAssign_1(l,&t); 923 933 l->next=h; 924 if (nok) 934 if (nok) 925 935 { 926 936 idDelete((ideal *)&m); … … 959 969 nok=TRUE; 960 970 break; 961 } 962 } 963 ende: 971 } 972 } 973 ende: 964 974 or->CleanUp(); 965 975 ol->CleanUp(); … … 993 1003 l->next=NULL; 994 1004 nok=jiAssign_1(l,&t); 995 if (nok) 1005 if (nok) 996 1006 { 997 1007 break; … … 1016 1026 atKillAll((idhdl)l); 1017 1027 l->attribute=NULL; 1018 } 1028 } 1019 1029 l->flag=0; 1020 1030 lists li; 1021 if (l->rtyp==IDHDL) 1031 if (l->rtyp==IDHDL) 1022 1032 { 1023 1033 li=IDLIST((idhdl)l->data); 1024 } 1034 } 1025 1035 else 1026 1036 { … … 1054 1064 b=iiAssign(ld,r); 1055 1065 l->e->next=ld->e; 1056 } 1066 } 1057 1067 return b; 1058 1068 } … … 1101 1111 { 1102 1112 IDFLAG((idhdl)l->data)=0; 1103 } 1113 } 1104 1114 l->flag=0; 1105 1115 if (ll==1) … … 1108 1118 if((l->e!=NULL) 1109 1119 && (((l->rtyp==IDHDL) && (IDTYP((idhdl)l->data)==LIST_CMD)) 1110 || (l->rtyp==LIST_CMD))) 1120 || (l->rtyp==LIST_CMD))) 1111 1121 { 1112 1122 if(r->next!=NULL) 1113 1123 b=jiA_L_LIST(l,r); 1114 else 1124 else 1115 1125 b=jiAssign_list(l,r); 1116 1126 if((l->rtyp==IDHDL) && (l->data!=NULL)) … … 1119 1129 l->attribute=IDATTR((idhdl)l->data); 1120 1130 l->flag=IDFLAG((idhdl)l->data); 1121 } 1131 } 1122 1132 r->CleanUp(); 1123 1133 Subexpr h; … … 1155 1165 l->flag=IDFLAG((idhdl)l->data); 1156 1166 l->CleanUp(); 1157 } 1167 } 1158 1168 r->CleanUp(); 1159 1169 return b; 1160 } 1170 } 1161 1171 if ((lt!=LIST_CMD) 1162 1172 &&((rt==MATRIX_CMD) … … 1164 1174 ||(rt==INTVEC_CMD) 1165 1175 ||(rt==MODUL_CMD))) 1166 { 1176 { 1167 1177 b=jiAssign_1(l,r); 1168 1178 if((l->rtyp==IDHDL)&&(l->data!=NULL)) … … 1171 1181 l->attribute=IDATTR((idhdl)l->data); 1172 1182 l->flag=IDFLAG((idhdl)l->data); 1173 } 1183 } 1174 1184 r->CleanUp(); 1175 1185 Subexpr h; -
Singular/ipid.cc
r388fe1e r58bbda 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: ipid.cc,v 1. 4 1997-04-02 15:07:10Singular Exp $ */4 /* $Id: ipid.cc,v 1.5 1997-06-17 09:44:26 Singular Exp $ */ 5 5 6 6 /* … … 94 94 IDMAP(h)->preimage = mstrdup(IDID(currRingHdl)); 95 95 break; 96 case PROC_CMD: 97 IDSTRING(h) = mstrdup("parameter list #;\nreturn();\n\n"); 98 break; 96 99 case STRING_CMD: 97 100 #ifdef HAVE_DLD … … 115 118 len = sizeof(ip_package); 116 119 break; 117 //other types: without init (int, proc,script,poly,def,package)120 //other types: without init (int,script,poly,def,package) 118 121 } 119 122 if (len!=0) -
Singular/longalg.cc
r388fe1e r58bbda 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: longalg.cc,v 1. 5 1997-05-06 18:21:22Singular Exp $ */4 /* $Id: longalg.cc,v 1.6 1997-06-17 09:44:27 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: algebraic numbers … … 231 231 static alg napCopy(alg p) 232 232 { 233 if (p==NULL) return NULL; 234 233 235 alg w, a; 234 235 if (p==NULL) return NULL; 236 int s=RECA_SIZE + naNumbOfPar * sizeof(int); 237 236 238 mmTestP(p,RECA_SIZE+naNumbOfPar*sizeof(int)); 237 a = w = (alg)Alloc( RECA_SIZE + naNumbOfPar * sizeof(int));239 a = w = (alg)Alloc(s); 238 240 memcpy(w->e, p->e, naNumbOfPar * sizeof(int)); 239 241 w->ko = nacCopy(p->ko); … … 242 244 p=p->ne; 243 245 if (p==NULL) break; 244 mmTestP(p, RECA_SIZE+naNumbOfPar*sizeof(int));245 a->ne = (alg)Alloc( RECA_SIZE + naNumbOfPar * sizeof(int));246 mmTestP(p,s); 247 a->ne = (alg)Alloc(s); 246 248 a = a->ne; 247 249 memcpy(a->e, p->e, naNumbOfPar * sizeof(int)); … … 466 468 * multiplication of alg. polys 467 469 * multiply p1 with p2, p1 and p2 are destroyed 468 * do not put attention on speed: the procedure is only used in the interpreter469 470 */ 470 471 static alg napMult(alg p1, alg p2) … … 1317 1318 alg x; 1318 1319 1320 naTest(la); 1321 naTest(lb); 1319 1322 mmTestP(a,sizeof(rnumber)); 1320 1323 mmTestP(b,sizeof(rnumber)); 1324 naTest(la); 1325 naTest(lb); 1326 alg tp=napCopy(a->z); 1327 naTest(la); 1328 naTest(lb); 1329 napDelete(&tp); 1330 naTest(la); 1331 naTest(lb); 1332 tp=napCopy(b->z); 1333 naTest(la); 1334 naTest(lb); 1335 napDelete(&tp); 1336 tp=napCopy(a->z); 1337 naTest(la); 1338 naTest(lb); 1339 napDelete(&tp); 1340 naTest(la); 1341 naTest(lb); 1342 tp=napCopy(b->z); 1343 naTest(la); 1344 naTest(lb); 1345 napDelete(&tp); 1346 naTest(la); 1347 naTest(lb); 1321 1348 lo = (lnumber)Alloc(sizeof(rnumber)); 1322 1349 lo->z = napMult(napCopy(a->z), napCopy(b->z)); 1350 naTest(la); 1351 naTest(lb); 1323 1352 if (a->n==NULL) 1324 1353 { … … 1331 1360 { 1332 1361 if (b->n==NULL) 1362 { 1333 1363 x = napCopy(a->n); 1364 } 1334 1365 else 1366 { 1335 1367 x = napMult(napCopy(b->n), napCopy(a->n)); 1368 } 1336 1369 } 1337 1370 if (naMinimalPoly!=NULL) … … 1365 1398 lo=NULL; 1366 1399 } 1400 naTest(la); 1401 naTest(lb); 1367 1402 naTest((number)lo); 1368 1403 return (number)lo; -
Singular/polys.cc
r388fe1e r58bbda 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: polys.cc,v 1. 4 1997-06-04 19:45:23 obachmanExp $ */4 /* $Id: polys.cc,v 1.5 1997-06-17 09:44:32 Singular Exp $ */ 5 5 6 6 /* … … 2714 2714 while (p!=NULL) 2715 2715 { 2716 nTest(pGetCoeff(p)); 2716 2717 nNormalize(pGetCoeff(p)); 2717 2718 pIter(p);
Note: See TracChangeset
for help on using the changeset viewer.