Changeset d97527 in git
- Timestamp:
- Jan 29, 2003, 8:13:36 PM (21 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- f49ee6feb3fddafcdda5d98c40b25f3f82a38afa
- Parents:
- b197b0615f7540efadd8e7aa8dc224ddfcb0d24b
- Location:
- Singular
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/extra.cc
rb197b06 rd97527 2 2 * Computer Algebra System SINGULAR * 3 3 *****************************************/ 4 /* $Id: extra.cc,v 1.19 4 2003-01-29 17:51:27 SingularExp $ */4 /* $Id: extra.cc,v 1.195 2003-01-29 19:13:35 levandov Exp $ */ 5 5 /* 6 6 * ABSTRACT: general interface to internals of Singular ("system" command) … … 1455 1455 for(j=i+1;j<=currRing->N;j++) 1456 1456 { 1457 MATELEM(C,i,j)=pCopy(pN); 1457 MATELEM(C,i,j) = nc_p_CopyPut(pN,currRing); 1458 // MATELEM(C,i,j)=pCopy(pN); 1458 1459 } 1459 1460 } … … 1501 1502 for(j=i+1;j<=currRing->N;j++) 1502 1503 { 1503 MATELEM(D,i,j)=pCopy(pN); 1504 MATELEM(D,i,j) = nc_p_CopyPut(pN,currRing); 1505 // MATELEM(D,i,j)=pCopy(pN); 1504 1506 } 1505 1507 } … … 1519 1521 int IsSkewConstant=1; 1520 1522 int IsNonComm=0; 1521 pN=MATELEM(currRing->nc->C,1,2); 1523 pN=nc_p_CopyGet(MATELEM(currRing->nc->C,1,2),currRing); 1524 // pN=MATELEM(currRing->nc->C,1,2); 1525 1522 1526 for(i=1;i<currRing->N;i++) 1523 1527 { … … 1548 1552 pSetExp(p,j,1); 1549 1553 pSetm(p); 1550 p=pAdd(p,pCopy(MATELEM(currRing->nc->D,i,j))); 1551 MATELEM(currRing->nc->MT[UPMATELEM(i,j,currRing->N)],1,1)=p; 1554 // p=pAdd(p,pCopy(MATELEM(currRing->nc->D,i,j))); 1555 p=pAdd(p,nc_p_CopyGet(MATELEM(currRing->nc->D,i,j),currRing)); 1556 // MATELEM(currRing->nc->MT[UPMATELEM(i,j,currRing->N)],1,1)=p; 1557 MATELEM(currRing->nc->MT[UPMATELEM(i,j,currRing->N)],1,1)=nc_p_CopyPut(p,currRing); 1558 pDelete(&p); 1552 1559 p=NULL; 1553 1560 } -
Singular/gring.cc
rb197b06 rd97527 7 7 * Author: levandov (Viktor Levandovsky) 8 8 * Created: 8/00 - 11/00 9 * Version: $Id: gring.cc,v 1.2 1 2003-01-29 17:49:29 SingularExp $9 * Version: $Id: gring.cc,v 1.22 2003-01-29 19:13:36 levandov Exp $ 10 10 *******************************************************************/ 11 11 #include "mod2.h" … … 21 21 #include "kstd1.h" 22 22 #include "sbuckets.h" 23 #include "prCopy.h" 23 24 24 25 /* global nc_macros : */ … … 95 96 if (expP==0) 96 97 { 97 if (expM==0) 98 { 99 expOut=0; 100 } 101 else 102 { 103 expOut=expM; 104 } 98 expOut=expM; 105 99 } 106 100 else … … 175 169 if (expP==0) 176 170 { 177 if (expM==0) 178 { 179 expOut=0; 180 } 181 else 182 { 183 expOut=expM; 184 } 171 expOut=expM; 185 172 } 186 173 else … … 637 624 if (((a<cMTsize)&&(b<cMTsize))&&(MATELEM(cMT,a,b)!=NULL)) 638 625 { 639 out=p_Copy(MATELEM(cMT,a,b),r); 626 out = prCopyR_NoSort(MATELEM(cMT,a,b),r->nc->basering, r); 627 // out=p_Copy(MATELEM(cMT,a,b),r); 640 628 return (out); 641 629 } 642 630 643 /* poly C=MATELEM(r->nc->C,j,i); */644 /* number c=p_GetCoeff(C,r); //coeff */645 /* p_Delete(&C,r); */646 647 631 int newcMTsize=0; 648 int k, m;632 int k,l,m; 649 633 650 634 if (a>=b) {newcMTsize=a;} else {newcMTsize=b;} … … 653 637 newcMTsize = newcMTsize+cMTsize; 654 638 matrix tmp = mpNew(newcMTsize,newcMTsize); 655 639 l=UPMATELEM(j,i,r->N); 656 640 for (k=1;k<=cMTsize;k++) 657 641 { 658 642 for (m=1;m<=cMTsize;m++) 659 643 { 660 MATELEM(tmp,k,m) = MATELEM(r->nc->MT[UPMATELEM(j,i,r->N)],k,m); 661 // omCheckAddr(tmp->m); 662 MATELEM(r->nc->MT[UPMATELEM(j,i,r->N)],k,m)=NULL; 663 // omCheckAddr(r->nc->MT[UPMATELEM(j,i,r->N)]->m); 644 MATELEM(tmp,k,m) = nc_p_CopyPut(MATELEM(r->nc->MT[l],k,m),r); 645 // MATELEM(tmp,k,m) = MATELEM(r->nc->MT[l],k,m); 646 // omCheckAddr(tmp->m); 647 // MATELEM(r->nc->MT[l],k,m)=NULL; 648 p_Delete(&MATELEM(r->nc->MT[l],k,m),r); 649 // omCheckAddr(r->nc->MT[UPMATELEM(j,i,r->N)]->m); 664 650 } 665 651 } 666 id_Delete((ideal *)&(r->nc->MT[ UPMATELEM(j,i,r->N)]),r);667 r->nc->MT[ UPMATELEM(j,i,r->N)] = tmp;668 r->nc->MTsize[ UPMATELEM(j,i,r->N)] = newcMTsize;652 id_Delete((ideal *)&(r->nc->MT[l]),r->nc->basering); 653 r->nc->MT[l] = tmp; 654 r->nc->MTsize[l] = newcMTsize; 669 655 } /* The update of multiplication matrix is finished */ 670 656 … … 679 665 for (k=2;k<=a;k++) 680 666 { 681 t =MATELEM(cMT,k,1);667 t = nc_p_CopyGet(MATELEM(cMT,k,1),r); 682 668 683 669 if (t==NULL) /* not computed yet */ 684 670 { 685 t=p_Copy(MATELEM(cMT,k-1,1),r); 686 t = nc_mm_Mult_p(y,t,r); 687 MATELEM(cMT,k,1) = t; 688 // omCheckAddr(cMT->m); 671 t = nc_p_CopyGet(MATELEM(cMT,k-1,1),r); 672 // t=p_Copy(MATELEM(cMT,k-1,1),r); 673 t = nc_mm_Mult_p(y,t,r); 674 MATELEM(cMT,k,1) = nc_p_CopyPut(t,r); 675 // omCheckAddr(cMT->m); 676 p_Delete(&t,r); 689 677 } 690 678 t=NULL; … … 693 681 for (m=2;m<=b;m++) 694 682 { 695 t=MATELEM(cMT,a,m); 696 if (t==NULL) //not computed yet 697 { 698 t=p_Copy(MATELEM(cMT,a,m-1),r); 699 t = nc_p_Mult_mm(t,x,r); 700 MATELEM(cMT,a,m) = t; 701 // omCheckAddr(cMT->m); 702 } 703 t=NULL; 683 t = nc_p_CopyGet(MATELEM(cMT,a,m),r); 684 // t=MATELEM(cMT,a,m); 685 if (t==NULL) //not computed yet 686 { 687 t = nc_p_CopyGet(MATELEM(cMT,a,m-1),r); 688 // t=p_Copy(MATELEM(cMT,a,m-1),r); 689 t = nc_p_Mult_mm(t,x,r); 690 MATELEM(cMT,a,m) = nc_p_CopyPut(t,r); 691 // MATELEM(cMT,a,m) = t; 692 // omCheckAddr(cMT->m); 693 p_Delete(&t,r); 694 } 695 t=NULL; 704 696 } 705 697 p_Delete(&x,r); 706 698 p_Delete(&y,r); 707 t=MATELEM(cMT,a,b); 708 return(p_Copy(t,r)); /* as the last computed element was cMT[a,b] */ 699 // t=MATELEM(cMT,a,b); 700 t= nc_p_CopyGet(MATELEM(cMT,a,b),r); 701 // return(p_Copy(t,r)); 702 /* since the last computed element was cMT[a,b] */ 703 return(t); 709 704 } 710 705 … … 1060 1055 p_Test(pL,r); 1061 1056 p_ExpVectorDiff(m1,pL,p1,r); 1057 p_SetComp(m1,0,r); 1062 1058 p_Setm(m1,r); 1063 1059 p_Test(m1,r); 1064 1060 p_ExpVectorDiff(m2,pL,p2,r); 1061 p_SetComp(m2,0,r); 1065 1062 p_Setm(m2,r); 1066 1063 p_Test(m2,r); … … 1099 1096 // n_Delete(&C2,r); 1100 1097 n_Delete(&MinusOne,r); 1098 p_Test(M2,r); 1101 1099 return(M2); 1102 1100 } … … 1114 1112 poly m=pOne(); 1115 1113 p_ExpVectorDiff(m,Q,p1,r); 1114 p_SetComp(m,0,r); 1116 1115 p_Setm(m,r); 1117 1116 p_Test(m,r); … … 1151 1150 pLcm(p1,p2,m); 1152 1151 p_Setm(m,r); 1152 p_Test(m,r); 1153 1153 return(m); 1154 1154 } … … 1502 1502 } 1503 1503 1504 poly nc_p_CopyGet(poly a, ring r) 1505 /* for use in getting the mult. martix elements*/ 1506 { 1507 if (!rIsPluralRing(r)) return(p_Copy(a,r)); 1508 if (r==r->nc->basering) return(p_Copy(a,r)); 1509 else 1510 { 1511 return(prCopyR_NoSort(a,r->nc->basering,r)); 1512 } 1513 } 1514 1515 poly nc_p_CopyPut(poly a, ring r) 1516 /* for use in defining the mult. martix elements*/ 1517 { 1518 if (!rIsPluralRing(r)) return(p_Copy(a,r)); 1519 if (r==r->nc->basering) return(p_Copy(a,r)); 1520 else 1521 { 1522 return(prCopyR_NoSort(a,r,r->nc->basering)); 1523 } 1524 } 1525 1526 1504 1527 #endif -
Singular/gring.h
rb197b06 rd97527 4 4 * Computer Algebra System SINGULAR * 5 5 ****************************************/ 6 /* $Id: gring.h,v 1.1 6 2003-01-29 16:13:11 SingularExp $ */6 /* $Id: gring.h,v 1.17 2003-01-29 19:13:36 levandov Exp $ */ 7 7 /* 8 8 * ABSTRACT additional defines etc for --with-plural … … 24 24 poly nc_mm_Mult_uu (Exponent_t *F,int jG,int bG, const ring r); 25 25 26 #define nc_uu_Mult_ww nc_uu_Mult_ww_ horvert26 #define nc_uu_Mult_ww nc_uu_Mult_ww_vert 27 27 poly nc_uu_Mult_ww_vert (int i, int a, int j, int b, const ring r); 28 28 poly nc_uu_Mult_ww_horvert (int i, int a, int j, int b, const ring r); … … 31 31 32 32 poly _nc_p_Mult_q(poly p, poly q, const int copy, const ring r); 33 34 //copy : 35 poly nc_p_CopyGet(poly a, ring r); 36 poly nc_p_CopyPut(poly a, ring r); 33 37 34 38 //syzygies :
Note: See TracChangeset
for help on using the changeset viewer.