Changeset af42ca in git
- Timestamp:
- Jan 29, 2003, 5:13:12 PM (21 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- cc86cd3b37e46f65f8f2f4c0bea2f9c0a3438043
- Parents:
- 18e9f2f7714c20737d239d02c81a2a64fcc2e65b
- Location:
- Singular
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/ChangeLog.plural
r18e9f2f raf42ca 1 29.11.02 2 ref for ncstruct introduced, 3 used in extra.cc ("PLURAL"), rCopy0, rKill 4 new routine ncKill 5 1 6 29.11.02 2 7 qring q=system("twostd",i); is introduced and tested -
Singular/extra.cc
r18e9f2f raf42ca 2 2 * Computer Algebra System SINGULAR * 3 3 *****************************************/ 4 /* $Id: extra.cc,v 1.19 2 2003-01-29 16:04:18 levandovExp $ */4 /* $Id: extra.cc,v 1.193 2003-01-29 16:13:10 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: general interface to internals of Singular ("system" command) … … 1400 1400 { 1401 1401 currRing->nc=(nc_struct *)omAlloc0(sizeof(nc_struct)); 1402 currRing->nc->ref=1; 1402 1403 } 1403 1404 else 1404 1405 { 1405 1406 WarnS("redefining algebra structure"); 1406 /* kill the previous nc data */ 1407 if (currRing->nc->ref>1) // in use by somebody else 1408 currRing->nc->ref--; 1409 else 1410 ncKill(currRing); /* kill the previous nc data */ 1411 currRing->nc=(nc_struct *)omAlloc0(sizeof(nc_struct)); 1412 currRing->nc->ref=1; 1407 1413 } 1408 1414 currRing->nc->type=nc_general; -
Singular/gring.cc
r18e9f2f raf42ca 7 7 * Author: levandov (Viktor Levandovsky) 8 8 * Created: 8/00 - 11/00 9 * Version: $Id: gring.cc,v 1. 19 2003-01-29 16:04:17 levandovExp $9 * Version: $Id: gring.cc,v 1.20 2003-01-29 16:13:11 Singular Exp $ 10 10 *******************************************************************/ 11 11 #include "mod2.h" … … 91 91 p_Test(v,r); 92 92 p_Test(p,r); 93 93 94 94 expP=p_GetComp(v,r); 95 95 if (expP==0) … … 102 102 { 103 103 expOut=expM; 104 } 104 } 105 105 } 106 106 else … … 113 113 { 114 114 /* REPORT_ERROR */ 115 115 Print("nc_p_Mult_mm: exponent mismatch %d and %d\n",expP,expM); 116 116 expOut=0; 117 117 } 118 118 } 119 119 120 120 p_GetExpV(v,P,r); 121 121 cP=p_GetCoeff(v,r); … … 165 165 166 166 sBucket_pt bu_out=sBucketCreate(r); 167 167 168 168 while (p!=NULL) 169 169 { … … 171 171 p_Test(v,r); 172 172 p_Test(p,r); 173 173 174 174 expP=p_GetComp(v,r); 175 175 if (expP==0) … … 182 182 { 183 183 expOut=expM; 184 } 184 } 185 185 } 186 186 else … … 193 193 { 194 194 /* REPORT_ERROR */ 195 195 Print("nc_mm_Mult_p: exponent mismatch %d and %d\n",expP,expM); 196 196 expOut=0; 197 197 } … … 234 234 F[0]=0; 235 235 G[0]=0; 236 236 237 237 iF=r->N; 238 238 while ((F[iF]==0)&&(iF>=1)) iF--; /* last exp_num of F */ … … 249 249 { 250 250 F[i]=F[i]+G[i]; 251 } 251 } 252 252 p_SetExpV(out,F,r); 253 253 p_Setm(out,r); … … 266 266 return(out); 267 267 } 268 268 269 269 number n1=n_Init(1,r); 270 270 Exponent_t *Prv=(Exponent_t *)omAlloc0(ExpSize); … … 342 342 p_Setm(Pn,r); 343 343 p_Test(Pn,r); 344 344 345 345 // if (pNext(D)==0) 346 346 // is D a monomial? could be postponed higher … … 350 350 // else 351 351 // { 352 Rout=nc_p_Mult_mm(D,Pn,r); 352 Rout=nc_p_Mult_mm(D,Pn,r); 353 353 // } 354 354 } … … 358 358 D=NULL; 359 359 } 360 360 361 361 if (Rout!=NULL) 362 362 { … … 405 405 int i; 406 406 number num=NULL; 407 407 408 408 int iF=r->N; 409 409 while ((F[iF]==0)&&(iF>0)) iF-- ; /* last exponent_num of F */ … … 434 434 return(out); 435 435 } 436 436 437 437 Exponent_t *Prv=(Exponent_t*)omAlloc0((r->N+1)*sizeof(Exponent_t)); 438 438 Exponent_t *Nxt=(Exponent_t*)omAlloc0((r->N+1)*sizeof(Exponent_t)); … … 484 484 number *c=(number *)omAlloc0((cnt+2)*sizeof(number)); 485 485 c[cnt+1]=n_Init(1,r); 486 i=cnt+2; 486 i=cnt+2; /* later in freeN */ 487 487 Exponent_t *Op=Nxt; 488 488 Exponent_t *On=(Exponent_t *)omAlloc0((r->N+1)*sizeof(Exponent_t)); … … 525 525 kk=lF[cnt+1]; 526 526 On[kk]=F[kk]; 527 527 528 528 Pn=pOne(); 529 529 p_SetExpV(Pn,On,r); … … 597 597 poly out=pOne(); 598 598 number tmp_number=NULL; 599 599 600 600 /* Now check zero exeptions, commutativity and should we do something at all? */ 601 601 if (i==j) … … 610 610 p_Setm(out,r); 611 611 if ((a==0)||(b==0)||(i<=j)) return(out);/* zero exeptions and usual case */ 612 612 613 613 if (MATELEM(r->nc->COM,j,i)!=NULL) 614 614 /* commutative or quasicommutative case */ … … 617 617 { 618 618 return(out); 619 } 619 } 620 620 else 621 621 { … … 640 640 return (out); 641 641 } 642 642 643 643 /* poly C=MATELEM(r->nc->C,j,i); */ 644 644 /* number c=p_GetCoeff(C,r); //coeff */ 645 645 /* p_Delete(&C,r); */ 646 646 647 647 int newcMTsize=0; 648 648 int k,m; … … 653 653 newcMTsize = newcMTsize+cMTsize; 654 654 matrix tmp = mpNew(newcMTsize,newcMTsize); 655 655 656 656 for (k=1;k<=cMTsize;k++) 657 657 { … … 659 659 { 660 660 MATELEM(tmp,k,m) = MATELEM(r->nc->MT[UPMATELEM(j,i,r->N)],k,m); 661 //omCheckAddr(tmp->m);661 // omCheckAddr(tmp->m); 662 662 MATELEM(r->nc->MT[UPMATELEM(j,i,r->N)],k,m)=NULL; 663 //omCheckAddr(r->nc->MT[UPMATELEM(j,i,r->N)]->m);663 // omCheckAddr(r->nc->MT[UPMATELEM(j,i,r->N)]->m); 664 664 } 665 665 } … … 673 673 poly x=pOne();p_SetExp(x,j,1,r);p_Setm(x,r);p_Test(x,r);/* var(j); */ 674 674 poly y=pOne();p_SetExp(y,i,1,r);p_Setm(y,r);p_Test(y,r);/*var(i); for convenience */ 675 675 676 676 poly t=NULL; 677 677 /* ------------ Main Cycles ----------------------------*/ … … 686 686 t = nc_mm_Mult_p(y,t,r); 687 687 MATELEM(cMT,k,1) = t; 688 //omCheckAddr(cMT->m);688 // omCheckAddr(cMT->m); 689 689 } 690 690 t=NULL; 691 691 } 692 692 693 693 for (m=2;m<=b;m++) 694 694 { … … 699 699 t = nc_p_Mult_mm(t,x,r); 700 700 MATELEM(cMT,a,m) = t; 701 //omCheckAddr(cMT->m);701 // omCheckAddr(cMT->m); 702 702 } 703 703 t=NULL; … … 725 725 }/* zero exeptions and usual case */ 726 726 /* if ((a==0)||(b==0)||(i<=j)) return(out); */ 727 727 728 728 if (MATELEM(r->nc->COM,j,i)!=NULL) 729 729 /* commutative or quasicommutative case */ … … 732 732 { 733 733 return(out); 734 } 734 } 735 735 else 736 736 { … … 760 760 } 761 761 } 762 int k,m; 762 int k,m; 763 763 if (newcMTsize > cMTsize) 764 764 { … … 785 785 // matrix tmp = (matrix)omAlloc0(inM*inM*sizeof(poly)); 786 786 matrix tmp = mpNew(newcMTsize,newcMTsize); 787 787 788 788 for (k=1;k<=cMTsize;k++) 789 789 { 790 790 for (m=1;m<=cMTsize;m++) 791 791 { 792 793 794 795 //omCheckAddr(tmp->m);796 797 //omCheckAddr(r->nc->MT[UPMATELEM(j,i,r->N)]->m);798 792 if ( MATELEM(r->nc->MT[UPMATELEM(j,i,r->N)],k,m) != NULL ) 793 { 794 MATELEM(tmp,k,m) = MATELEM(r->nc->MT[UPMATELEM(j,i,r->N)],k,m); 795 // omCheckAddr(tmp->m); 796 MATELEM(r->nc->MT[UPMATELEM(j,i,r->N)],k,m)=NULL; 797 // omCheckAddr(r->nc->MT[UPMATELEM(j,i,r->N)]->m); 798 } 799 799 } 800 800 } … … 809 809 poly x=pOne();p_SetExp(x,j,1,r);p_Setm(x,r);p_Test(x,r); /* var(j); */ 810 810 poly y=pOne();p_SetExp(y,i,1,r);p_Setm(y,r);p_Test(y,r); /*var(i); for convenience */ 811 811 812 812 poly t=NULL; 813 813 … … 824 824 if (t==NULL) /* remove after debug */ 825 825 { 826 827 828 829 /*omCheckAddr(cMT->m); */826 t = p_Copy(MATELEM(cMT,1,m-1),r); 827 t = nc_p_Mult_mm(t,x,r); 828 MATELEM(cMT,1,m) = t; 829 /* omCheckAddr(cMT->m); */ 830 830 } 831 831 else 832 { 833 834 832 { 833 /* Error, should never get there */ 834 WarnS("Error: a=1; MATELEM!=0"); 835 835 } 836 836 t=NULL; … … 848 848 if (t==NULL) /* remove after debug */ 849 849 { 850 851 852 853 /*omCheckAddr(cMT->m); */850 t = p_Copy(MATELEM(cMT,m-1,1),r); 851 t = nc_mm_Mult_p(y,t,r); 852 MATELEM(cMT,m,1) = t; 853 /* omCheckAddr(cMT->m); */ 854 854 } 855 855 else 856 { 857 858 856 { 857 /* Error, should never get there */ 858 WarnS("Error: b=1, MATELEM!=0"); 859 859 } 860 860 t=NULL; … … 870 870 /* dYX = distance for computing y-mult, then x-mult */ 871 871 int toX=a-1; int toY=b-1; /* toX = to axe X, toY = to axe Y */ 872 toXY=b-1; toYX=a-1; 872 toXY=b-1; toYX=a-1; 873 873 /* if toX==0, toXY = dist. to computed y * x^toXY */ 874 874 /* if toY==0, toYX = dist. to computed y^toYX * x */ … … 890 890 } 891 891 dYX=dYX+b-toY; /* the distance to nearest computed y^a x^toY */ 892 892 893 893 if (dYX>=dXY) 894 894 { … … 898 898 for (m=toXY+1;m<=b;m++) 899 899 { 900 901 902 903 904 905 906 /*omCheckAddr(cMT->m); */907 908 909 { 910 911 912 913 900 t=MATELEM(cMT,1,m); 901 if (t==NULL) /* remove after debug */ 902 { 903 t = p_Copy(MATELEM(cMT,1,m-1),r); 904 t = nc_p_Mult_mm(t,x,r); 905 MATELEM(cMT,1,m) = t; 906 /* omCheckAddr(cMT->m); */ 907 } 908 else 909 { 910 /* Error, should never get there */ 911 WarnS("dYX>=dXY,toXY; MATELEM==0"); 912 } 913 t=NULL; 914 914 } 915 915 toX=1; /* y*x^b is computed */ … … 924 924 t = nc_mm_Mult_p(y,t,r); 925 925 MATELEM(cMT,k,b) = t; 926 /*omCheckAddr(cMT->m); */926 /* omCheckAddr(cMT->m); */ 927 927 } 928 928 else 929 929 { 930 931 930 /* Error, should never get there */ 931 WarnS("dYX>=dXY,toX; MATELEM==0"); 932 932 } 933 933 t=NULL; … … 943 943 for (m=toYX+1;m<=a;m++) 944 944 { 945 946 947 948 949 950 951 /*omCheckAddr(cMT->m); */952 953 954 { 955 956 957 958 945 t=MATELEM(cMT,m,1); 946 if (t==NULL) /* remove after debug */ 947 { 948 t = p_Copy(MATELEM(cMT,m-1,1),r); 949 t = nc_mm_Mult_p(y,t,r); 950 MATELEM(cMT,m,1) = t; 951 /* omCheckAddr(cMT->m); */ 952 } 953 else 954 { 955 /* Error, should never get there */ 956 WarnS("dYX<dXY,toYX; MATELEM==0"); 957 } 958 t=NULL; 959 959 } 960 960 toY=1; /* y^a*x is computed */ … … 969 969 t = nc_p_Mult_mm(t,x,r); 970 970 MATELEM(cMT,a,k) = t; 971 /*omCheckAddr(cMT->m); */971 /* omCheckAddr(cMT->m); */ 972 972 } 973 973 else 974 974 { 975 976 975 /* Error, should never get there */ 976 WarnS("dYX<dXY,toY; MATELEM==0"); 977 977 } 978 978 t=NULL; 979 979 } 980 980 } /* endif (dYX<dXY) */ 981 981 982 982 p_Delete(&x,r); 983 983 p_Delete(&y,r); … … 999 999 if (p_GetComp(p1,r)!=p_GetComp(p2,r)) 1000 1000 { 1001 Print("nc_spGSpolyRed: different components"); 1001 Print("nc_spGSpolyRed: different components"); 1002 1002 return(NULL); 1003 1003 } 1004 1004 poly m=pOne(); 1005 1005 p_ExpVectorDiff(m,p2,p1,r); 1006 p_Setm(m,r); 1006 p_Setm(m,r); 1007 1007 p_Test(m,r); 1008 1008 /* pSetComp(m,r)=0? */ … … 1014 1014 N=p_Add_q(N,out,r); 1015 1015 number MinusOne=n_Init(-1,r); 1016 if (!n_Equal(cF,MinusOne,r)) 1016 if (!n_Equal(cF,MinusOne,r)) 1017 1017 { 1018 1018 cF=n_Neg(cF,r); … … 1046 1046 if (p_GetComp(p1,r)!=p_GetComp(p2,r)) 1047 1047 { 1048 Print("nc_spGSpolyCreate : different components!"); 1048 Print("nc_spGSpolyCreate : different components!"); 1049 1049 return(NULL); 1050 1050 } … … 1112 1112 poly Q=pNext(q2); 1113 1113 number cQ=p_GetCoeff(Q,r); 1114 poly m=pOne(); 1114 poly m=pOne(); 1115 1115 p_ExpVectorDiff(m,Q,p1,r); 1116 p_Setm(m,r); 1116 p_Setm(m,r); 1117 1117 p_Test(m,r); 1118 1118 /* pSetComp(m,r)=0? */ … … 1125 1125 { 1126 1126 cQ=nNeg(cQ); 1127 M=p_Mult_nn(M,cQ,r); 1127 M=p_Mult_nn(M,cQ,r); 1128 1128 } 1129 1129 Q=p_Add_q(Q,M,r); … … 1170 1170 if (!nEqual(n,MinusOne)) 1171 1171 { 1172 nn=nNeg(nInvers(n)); 1172 nn=nNeg(nInvers(n)); 1173 1173 } 1174 1174 else nn=nInit(1); … … 1200 1200 if (!nEqual(n,MinusOne)) 1201 1201 { 1202 nn=nNeg(nInvers(n)); 1202 nn=nNeg(nInvers(n)); 1203 1203 } 1204 1204 else nn=nInit(1); … … 1228 1228 { 1229 1229 pres=nc_mm_Bracket_nn(p,Q); /* since no coeffs are taken into account there */ 1230 if (pres!=NULL) 1231 { 1232 1233 1234 1230 if (pres!=NULL) 1231 { 1232 coef=nMult(pGetCoeff(p),pGetCoeff(Q)); 1233 if (!nIsOne(coef)) pres=p_Mult_nn(pres,coef,currRing); 1234 res=p_Add_q(res,pres,currRing); 1235 1235 nDelete(&coef); 1236 1236 } … … 1270 1270 for (j=1;j<=currRing->N;j++) 1271 1271 { 1272 if (M1[j]!=0) 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1272 if (M1[j]!=0) 1273 { 1274 bres=NULL; 1275 /* compute [ x_j^M1[j],x_i^M2[i] ] */ 1276 if (i<j) {nMax=j; nMin=i;} else {nMax=i; nMin=j;} 1277 if ( (i==j) || ((MATELEM(currRing->nc->COM,nMin,nMax)!=NULL) && nIsOne(pGetCoeff(MATELEM(currRing->nc->C,nMin,nMax))) )) /* not (the same exp. or commuting exps)*/ 1278 { bres=NULL; } 1279 else 1280 { 1281 if (i<j) { bres=nc_uu_Mult_ww(j,M1[j],i,M2[i],currRing); } 1282 else bres=nc_uu_Mult_ww(i,M2[i],j,M1[j],currRing); 1283 if (nIsOne(pGetCoeff(bres))) 1284 { 1285 bres=pLmDeleteAndNext(bres); 1286 } 1287 else 1288 { 1289 nTmp=nInit(1); 1290 nTmp=nSub(pGetCoeff(bres),nTmp); 1291 pSetCoeff(bres,nTmp); /* only lc ! */ 1292 } 1293 pTest(bres); 1294 if (i>j) bres=p_Mult_nn(bres, MinusOne,currRing); 1295 } 1296 if (bres!=NULL) 1297 { 1298 /* now mult (prefix, bres, suffix) */ 1299 memcpy(SUFFIX, M1,(currRing->N+1)*sizeof(Exponent_t)); 1300 memcpy(PREFIX, M1,(currRing->N+1)*sizeof(Exponent_t)); 1301 for (k=1;k<=j;k++) SUFFIX[k]=0; 1302 for (k=j;k<=currRing->N;k++) PREFIX[k]=0; 1303 SUFFIX[0]=0; 1304 PREFIX[0]=0; 1305 prefix=pOne(); 1306 suffix=pOne(); 1307 pSetExpV(prefix,PREFIX); 1308 pSetm(prefix); 1309 pSetExpV(suffix,SUFFIX); 1310 pSetm(suffix); 1311 if (!pLmIsConstant(prefix)) bres = nc_mm_Mult_p(prefix, bres,currRing); 1312 if (!pLmIsConstant(suffix)) bres = nc_p_Mult_mm(bres, suffix,currRing); 1313 ares=p_Add_q(ares, bres,currRing); 1314 /* What to give free? */ 1315 pDelete(&prefix); 1316 pDelete(&suffix); 1317 } 1318 } 1319 1319 } 1320 1320 if (ares!=NULL) 1321 1321 { 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1322 /* now mult (prefix, bres, suffix) */ 1323 memcpy(SUFFIX, M2,(currRing->N+1)*sizeof(Exponent_t)); 1324 memcpy(PREFIX, M2,(currRing->N+1)*sizeof(Exponent_t)); 1325 for (k=1;k<=i;k++) SUFFIX[k]=0; 1326 for (k=i;k<=currRing->N;k++) PREFIX[k]=0; 1327 SUFFIX[0]=0; 1328 PREFIX[0]=0; 1329 prefix=pOne(); 1330 suffix=pOne(); 1331 pSetExpV(prefix,PREFIX); 1332 pSetm(prefix); 1333 pSetExpV(suffix,SUFFIX); 1334 pSetm(suffix); 1335 bres=ares; 1336 if (!pLmIsConstant(prefix)) bres = nc_mm_Mult_p(prefix, bres,currRing); 1337 if (!pLmIsConstant(suffix)) bres = nc_p_Mult_mm(bres, suffix,currRing); 1338 res=p_Add_q(res, bres,currRing); 1339 pDelete(&prefix); 1340 pDelete(&suffix); 1341 1341 } 1342 1342 } … … 1351 1351 ideal twostd(ideal I) 1352 1352 { 1353 int i; 1354 int j; 1355 int s; 1353 int i; 1354 int j; 1355 int s; 1356 1356 int flag; 1357 1357 poly p=NULL; … … 1374 1374 p=J->m[i]; 1375 1375 for (j=1;j<=currRing->N;j++) 1376 { 1377 1378 1379 1380 q=nc_p_Mult_mm(pCopy(p),varj,currRing); 1381 1382 1383 1376 { 1377 varj=pOne(); 1378 pSetExp(varj,j,1); 1379 pSetm(varj); 1380 q=nc_p_Mult_mm(pCopy(p),varj,currRing); 1381 pDelete(&varj); 1382 q=nc_spGSpolyRed(p,q,NULL,currRing); 1383 q = kNF(J,Quot,q,0,0); 1384 1384 if (q!=NULL) 1385 1385 { 1386 1387 1388 1389 1390 1391 1392 1393 1394 1386 if (pIsConstant(q)) 1387 { 1388 Q=idInit(1,1); 1389 Q->m[0]=pOne(); 1390 idDelete(&J); 1391 pDelete(&q); 1392 if (K!=NULL) idDelete(&K); 1393 return(Q); 1394 } 1395 1395 flag=1; 1396 1397 1398 1399 1400 1401 idDelete(&Q); 1402 } 1403 } 1404 } 1405 if (flag==0) 1396 Q=idInit(1,1); 1397 Q->m[0]=q; 1398 id_tmp=idSimpleAdd(K,Q); 1399 idDelete(&K); 1400 K=id_tmp; 1401 idDelete(&Q); 1402 } 1403 } 1404 } 1405 if (flag==0) 1406 1406 /* i.e. all elements are two-sided */ 1407 1407 { 1408 1408 idDelete(&K); 1409 return(J); 1409 return(J); 1410 1410 } 1411 1411 id_tmp=idAdd(J,K); … … 1421 1421 /* returns matrix with the info on noncomm multiplication */ 1422 1422 { 1423 1423 1424 1424 if ( (a==b) || !rIsPluralRing(r) ) return(NULL); 1425 1425 int i; … … 1452 1452 p=MATELEM(M,s,t); 1453 1453 if (p==NULL) 1454 { 1455 1454 { 1455 MATELEM(res,s,t)=0; 1456 1456 } 1457 1457 else 1458 1458 { 1459 1460 1461 { 1462 1463 1464 1465 1466 1467 while (p!=NULL) 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 MATELEM(res,s,t)=p_NSet(nres,r); 1478 1459 length = pLength(p); 1460 if (metric==0) /* length */ 1461 { 1462 MATELEM(res,s,t)= p_ISet(length,r); 1463 } 1464 else if (metric==1) /* sum of deg divided by the length */ 1465 { 1466 totdeg=0; 1467 while (p!=NULL) 1468 { 1469 totdeg=totdeg+pDeg(p,r); 1470 pIter(p); 1471 } 1472 number ntd = nInit(totdeg); 1473 number nln = nInit(length); 1474 number nres=nDiv(ntd,nln); 1475 nDelete(&ntd); 1476 nDelete(&nln); 1477 MATELEM(res,s,t)=p_NSet(nres,r); 1478 } 1479 1479 } 1480 1480 } … … 1483 1483 } 1484 1484 1485 void ncKill(ring r) 1486 { 1487 int i,j; 1488 for(i=1;i<r->N;i++) 1489 { 1490 for(j=i+1;j<=r->N;j++) 1491 { 1492 id_Delete((ideal *)&(r->nc->MT[UPMATELEM(i,j,r->N)]),r); 1493 } 1494 } 1495 omFreeSize((ADDRESS)r->nc->MT,r->N*(r->N-1)/2*sizeof(matrix)); 1496 omFreeSize((ADDRESS)r->nc->MTsize,r->N*(r->N-1)/2*sizeof(int)); 1497 id_Delete((ideal *)&(r->nc->C),r); 1498 id_Delete((ideal *)&(r->nc->D),r); 1499 id_Delete((ideal *)&(r->nc->COM),r); 1500 omFreeSize((ADDRESS)r->nc,sizeof(nc_struct)); 1501 r->nc=NULL; 1502 } 1503 1485 1504 #endif -
Singular/gring.h
r18e9f2f raf42ca 4 4 * Computer Algebra System SINGULAR * 5 5 ****************************************/ 6 /* $Id: gring.h,v 1.1 5 2003-01-29 16:04:18 levandovExp $ */6 /* $Id: gring.h,v 1.16 2003-01-29 16:13:11 Singular Exp $ */ 7 7 /* 8 8 * ABSTRACT additional defines etc for --with-plural … … 11 11 #ifdef HAVE_PLURAL 12 12 #include "structs.h" 13 14 void ncKill(ring r); 13 15 14 16 #define UPMATELEM(i,j,nVar) ( (nVar * ((i)-1) - ((i) * ((i)-1))/2 + (j)-1)-(i) ) -
Singular/structs.h
r18e9f2f raf42ca 4 4 * Computer Algebra System SINGULAR * 5 5 ****************************************/ 6 /* $Id: structs.h,v 1.6 7 2002-11-26 13:54:44Singular Exp $ */6 /* $Id: structs.h,v 1.68 2003-01-29 16:13:10 Singular Exp $ */ 7 7 /* 8 8 * ABSTRACT … … 352 352 struct nc_struct 353 353 { 354 short ref; 354 355 nc_type type; 355 356 matrix C;
Note: See TracChangeset
for help on using the changeset viewer.