Changeset 17e692 in git for Singular/ring.cc
- Timestamp:
- Mar 8, 1999, 7:11:50 PM (25 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 2a10547f349f40ba3e6a890b93b03d6cb4b37f52
- Parents:
- be0d84532eb45d49b654745e810a1a7a534d71ff
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/ring.cc
rbe0d84 r17e692 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: ring.cc,v 1.4 3 1999-02-10 16:00:04Singular Exp $ */4 /* $Id: ring.cc,v 1.44 1999-03-08 18:11:50 Singular Exp $ */ 5 5 6 6 /* … … 67 67 68 68 /*------------ global variables related to coefficients ------------*/ 69 nSetChar(r->ch, complete, r->parameter, r ->P);69 nSetChar(r->ch, complete, r->parameter, rPar(r)); 70 70 71 71 /*------------ global variables related to polys -------------------*/ … … 161 161 if ((rg->parameter!=NULL) && (rg->ch<2)) 162 162 { 163 for (i=0;i<r g->P;i++)163 for (i=0;i<rPar(rg);i++) 164 164 { 165 165 if(strlen(rg->parameter[i])>1) … … 731 731 732 732 733 if ( (r->parameter!=NULL)&&(r->ch>1))733 if (rField_is_GF(r)) 734 734 PrintS("// # ground field : "); 735 735 else 736 736 PrintS("// characteristic : "); 737 if (r->ch==-1) PrintS("0 (real)\n"); /* R */ 738 else if (r->ch<0) Print ("%d\n",-r->ch); /* Fp(a) */ 739 else if (r->ch==1) PrintS("0\n"); /* Q(a) */ 740 else Print ("%d\n",r->ch); /* Fq, Fp, Q */ 737 if ( rField_is_R(r) ) PrintS("0 (real)\n"); /* R */ 738 else Print ("%d\n",rChar(r)); /* Fp(a) */ 741 739 if (r->parameter!=NULL) 742 740 { … … 746 744 char **sp=r->parameter; 747 745 int nop=0; 748 while (nop<r ->P)746 while (nop<rPar(r)) 749 747 { 750 748 PrintS(*sp); … … 926 924 int len=0; 927 925 char **s=r->parameter; 928 while (len<r ->P)926 while (len<rPar(r)) 929 927 { 930 928 FreeL((ADDRESS)*s); … … 932 930 len++; 933 931 } 934 Free((ADDRESS)r->parameter,r ->P*sizeof(char *));932 Free((ADDRESS)r->parameter,rPar(r)*sizeof(char *)); 935 933 } 936 934 Free((ADDRESS)r->VarOffset, (r->N +1)*sizeof(int)); … … 1206 1204 } 1207 1205 int l=0; 1208 for(i=0; i<r ->P;i++)1206 for(i=0; i<rPar(r);i++) 1209 1207 { 1210 1208 l+=(strlen(r->parameter[i])+1); … … 1222 1220 tt[0]=','; 1223 1221 tt[1]='\0'; 1224 for(i=0; i<r ->P;i++)1222 for(i=0; i<rPar(r);i++) 1225 1223 { 1226 1224 strcat(s,tt); … … 1237 1235 int l=2; 1238 1236 1239 for (i=0; i<r ->P; i++)1237 for (i=0; i<rPar(r); i++) 1240 1238 { 1241 1239 l+=strlen(r->parameter[i])+1; … … 1243 1241 char *s=(char *)AllocL(l); 1244 1242 s[0]='\0'; 1245 for (i=0; i<r ->P-1; i++)1243 for (i=0; i<rPar(r)-1; i++) 1246 1244 { 1247 1245 strcat(s,r->parameter[i]); … … 1313 1311 memset(&tmpR,0,sizeof(tmpR)); 1314 1312 /* check coeff. field =====================================================*/ 1315 if (r 1->ch==r2->ch)1316 { 1317 tmpR.ch=r 1->ch;1318 if ( (r1->ch==0)||(r1->ch>=2)) /* Q, Z/p, GF(p,n)*/1313 if (rInternalChar(r1)==rInternalChar(r2)) 1314 { 1315 tmpR.ch=rInternalChar(r1); 1316 if (rField_is_Q(r1)||rField_is_Zp(r1)||rField_is_GF(r1)) /*Q, Z/p, GF(p,n)*/ 1319 1317 { 1320 1318 if (r1->parameter!=NULL) … … 1339 1337 if (r2->minpoly!=NULL) 1340 1338 { 1341 nSetChar(r 1->ch,TRUE,r1->parameter,r1->P);1339 nSetChar(rInternalChar(r1),TRUE,r1->parameter,rPar(r1)); 1342 1340 if ((strcmp(r1->parameter[0],r2->parameter[0])==0) /* 1 char */ 1343 1341 && naEqual(r1->minpoly,r2->minpoly)) … … 1347 1345 tmpR.minpoly=naCopy(r1->minpoly); 1348 1346 tmpR.P=1; 1349 nSetChar(currRing->ch,TRUE,currRing->parameter,currRing->P); 1347 nSetChar(rInternalChar(currRing),TRUE,currRing->parameter, 1348 rPar(currRing)); 1350 1349 } 1351 1350 else 1352 1351 { 1353 nSetChar(currRing->ch,TRUE,currRing->parameter,currRing->P); 1352 nSetChar(rInternalChar(currRing),TRUE,currRing->parameter, 1353 rPar(currRing)); 1354 1354 WerrorS("different minpolys"); 1355 1355 return -1; … … 1359 1359 { 1360 1360 if ((strcmp(r1->parameter[0],r2->parameter[0])==0) /* 1 char */ 1361 && (r 2->P==1))1361 && (rPar(r2)==1)) 1362 1362 { 1363 1363 tmpR.parameter=(char **)Alloc0(sizeof(char *)); 1364 1364 tmpR.parameter[0]=mstrdup(r1->parameter[0]); 1365 1365 tmpR.P=1; 1366 nSetChar(r 1->ch,TRUE,r1->parameter,r1->P);1366 nSetChar(rInternalChar(r1),TRUE,r1->parameter,rPar(r1)); 1367 1367 tmpR.minpoly=naCopy(r1->minpoly); 1368 nSetChar(currRing->ch,TRUE,currRing->parameter,currRing->P); 1368 nSetChar(rInternalChar(currRing),TRUE,currRing->parameter, 1369 rPar(currRing)); 1369 1370 } 1370 1371 else … … 1380 1381 { 1381 1382 if ((strcmp(r1->parameter[0],r2->parameter[0])==0) /* 1 char */ 1382 && (r 1->P==1))1383 && (rPar(r1)==1)) 1383 1384 { 1384 1385 tmpR.parameter=(char **)Alloc(sizeof(char *)); 1385 1386 tmpR.parameter[0]=mstrdup(r1->parameter[0]); 1386 1387 tmpR.P=1; 1387 nSetChar(r 2->ch,TRUE,r2->parameter,r2->P);1388 nSetChar(rInternalChar(r2),TRUE,r2->parameter,rPar(r2)); 1388 1389 tmpR.minpoly=naCopy(r2->minpoly); 1389 nSetChar(currRing->ch,TRUE,currRing->parameter,currRing->P); 1390 nSetChar(rInternalChar(currRing),TRUE,currRing->parameter, 1391 rPar(currRing)); 1390 1392 } 1391 1393 else … … 1400 1402 tmpR.parameter=(char **)Alloc(len*sizeof(char *)); 1401 1403 int i; 1402 for (i=0;i<r 1->P;i++)1404 for (i=0;i<rPar(r1);i++) 1403 1405 { 1404 1406 tmpR.parameter[i]=mstrdup(r1->parameter[i]); 1405 1407 } 1406 1408 int j,l; 1407 for(j=0;j<r 2->P;j++)1409 for(j=0;j<rPar(r2);j++) 1408 1410 { 1409 1411 for(l=0;l<i;l++) … … 1433 1435 || (r2->ch==-r1->ch)) /* Z/p */ 1434 1436 { 1435 tmpR.ch=r 1->ch;1437 tmpR.ch=rInternalChar(r1); 1436 1438 tmpR.parameter=(char **)Alloc(rPar(r1)*sizeof(char *)); 1437 tmpR.P=r 1->P;1439 tmpR.P=rPar(r1); 1438 1440 memcpy(tmpR.parameter,r1->parameter,rPar(r1)*sizeof(char *)); 1439 1441 if (r1->minpoly!=NULL) 1440 1442 { 1441 nSetChar(r 1->ch,TRUE,r1->parameter,r1->P);1443 nSetChar(rInternalChar(r1),TRUE,r1->parameter,rPar(r1)); 1442 1444 tmpR.minpoly=naCopy(r1->minpoly); 1443 nSetChar(currRing->ch,TRUE,currRing->parameter,currRing->P); 1445 nSetChar(rInternalChar(currRing),TRUE,currRing->parameter, 1446 rPar(currRing)); 1444 1447 } 1445 1448 } … … 1459 1462 if ((r2->ch<-1)||(r2->ch==1)) /* Z/p(a),Q(a) */ 1460 1463 { 1461 tmpR.ch=r 2->ch;1462 tmpR.P=r 2->P;1464 tmpR.ch=rInternalChar(r2); 1465 tmpR.P=rPar(r2); 1463 1466 tmpR.parameter=(char **)Alloc(rPar(r2)*sizeof(char *)); 1464 1467 memcpy(tmpR.parameter,r2->parameter,rPar(r2)*sizeof(char *)); 1465 1468 if (r2->minpoly!=NULL) 1466 1469 { 1467 nSetChar(r 1->ch,TRUE,r1->parameter,r1->P);1470 nSetChar(rInternalChar(r1),TRUE,r1->parameter,rPar(r1)); 1468 1471 tmpR.minpoly=naCopy(r2->minpoly); 1469 nSetChar(currRing->ch,TRUE,currRing->parameter,currRing->P); 1472 nSetChar(rInternalChar(currRing),TRUE,currRing->parameter, 1473 rPar(currRing)); 1470 1474 } 1471 1475 } … … 1490 1494 if (r2->ch==0) /* Q */ 1491 1495 { 1492 tmpR.ch=r 1->ch;1496 tmpR.ch=rInternalChar(r1); 1493 1497 tmpR.P=rPar(r1); 1494 1498 tmpR.parameter=(char **)Alloc0(rPar(r1)*sizeof(char *)); 1495 1499 int i; 1496 for(i=0;i<r 1->P;i++)1500 for(i=0;i<rPar(r1);i++) 1497 1501 { 1498 1502 tmpR.parameter[i]=mstrdup(r1->parameter[i]); … … 1500 1504 if (r1->minpoly!=NULL) 1501 1505 { 1502 nSetChar(r 1->ch,TRUE,r1->parameter,r1->P);1506 nSetChar(rInternalChar(r1),TRUE,r1->parameter,rPar(r1)); 1503 1507 tmpR.minpoly=naCopy(r1->minpoly); 1504 nSetChar(currRing->ch,TRUE,currRing->parameter,currRing->P); 1508 nSetChar(rInternalChar(currRing),TRUE,currRing->parameter, 1509 rPar(currRing)); 1505 1510 } 1506 1511 } … … 1519 1524 else if (r2->ch==-r1->ch) /* Z/p(a) */ 1520 1525 { 1521 tmpR.ch=r 2->ch;1526 tmpR.ch=rInternalChar(r2); 1522 1527 tmpR.P=rPar(r2); 1523 1528 tmpR.parameter=(char **)Alloc(rPar(r2)*sizeof(char *)); 1524 1529 int i; 1525 for(i=0;i<r 2->P;i++)1530 for(i=0;i<rPar(r2);i++) 1526 1531 { 1527 1532 tmpR.parameter[i]=mstrdup(r2->parameter[i]); … … 1529 1534 if (r2->minpoly!=NULL) 1530 1535 { 1531 nSetChar(r 2->ch,TRUE,r2->parameter,r2->P);1536 nSetChar(rInternalChar(r2),TRUE,r2->parameter,rPar(r2)); 1532 1537 tmpR.minpoly=naCopy(r2->minpoly); 1533 nSetChar(currRing->ch,TRUE,currRing->parameter,currRing->P); 1538 nSetChar(rInternalChar(currRing),TRUE,currRing->parameter, 1539 rPar(currRing)); 1534 1540 } 1535 1541 } … … 1557 1563 else if ((r2->parameter!=NULL) && (strlen(r1->names[i])==1)) 1558 1564 { 1559 for(j=0;j<r 2->P;j++)1565 for(j=0;j<rPar(r2);j++) 1560 1566 { 1561 1567 if (strcmp(r1->names[i],r2->parameter[j])==0) … … 1586 1592 else if ((r1->parameter!=NULL) && (strlen(r2->names[i])==1)) 1587 1593 { 1588 for(j=0;j<r 1->P;j++)1594 for(j=0;j<rPar(r1);j++) 1589 1595 { 1590 1596 if (strcmp(r2->names[i],r1->parameter[j])==0) … … 1760 1766 res->parameter=(char **)Alloc(l*sizeof(char *)); 1761 1767 int i; 1762 for(i=0;i<r ->P;i++)1768 for(i=0;i<rPar(r);i++) 1763 1769 { 1764 1770 res->parameter[i]=mstrdup(r->parameter[i]);
Note: See TracChangeset
for help on using the changeset viewer.