Changeset db2e1c in git for kernel/ring.cc
- Timestamp:
- Apr 21, 2008, 1:23:12 PM (16 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- fd8c22d40aaba525d2d73c49f8b5c839fffbd1d1
- Parents:
- 3ad53dd58ab62b367f6a39e871372997e9c519bd
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/ring.cc
r3ad53dd rdb2e1c 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: ring.cc,v 1.7 7 2008-03-19 17:44:11Singular Exp $ */4 /* $Id: ring.cc,v 1.78 2008-04-21 11:23:12 Singular Exp $ */ 5 5 6 6 /* … … 724 724 /*2 725 725 *returns -1 for not compatible, (sum is undefined) 726 * 0 for equal, (and sum)727 726 * 1 for compatible (and sum) 728 727 */ 729 int rSum(ring r1, ring r2, ring &sum) 730 { 731 if (r1==r2) 732 { 733 sum=r1; 734 r1->ref++; 735 return 0; 736 } 728 /* vartest: test for variable/paramter names 729 * dp_dp: for comm. rings: use block order dp,dp 730 */ 731 int rTensor(ring r1, ring r2, ring &sum, BOOLEAN vartest, BOOLEAN dp_dp) 732 { 737 733 ring save=currRing; 738 734 ip_sring tmpR; … … 746 742 if (r1->parameter!=NULL) 747 743 { 748 if ( strcmp(r1->parameter[0],r2->parameter[0])==0) /* 1 char */744 if (!vartest || (strcmp(r1->parameter[0],r2->parameter[0])==0)) /* 1 par */ 749 745 { 750 746 tmpR.parameter=(char **)omAllocBin(char_ptr_bin); … … 767 763 // HANNES: TODO: delete nSetChar 768 764 rChangeCurrRing(r1); 769 if (( strcmp(r1->parameter[0],r2->parameter[0])==0) /* 1 char */765 if ((!vartest || (strcmp(r1->parameter[0],r2->parameter[0])==0)) /* 1 par */ 770 766 && n_Equal(r1->minpoly,r2->minpoly, r1)) 771 767 { … … 787 783 else 788 784 { 789 if (( strcmp(r1->parameter[0],r2->parameter[0])==0) /* 1 char */785 if ((!vartest || (strcmp(r1->parameter[0],r2->parameter[0])==0)) /* 1 par */ 790 786 && (rPar(r2)==1)) 791 787 { … … 806 802 if (r2->minpoly!=NULL) 807 803 { 808 if (( strcmp(r1->parameter[0],r2->parameter[0])==0) /* 1 char */804 if ((!vartest || (strcmp(r1->parameter[0],r2->parameter[0])==0)) /* 1 par */ 809 805 && (rPar(r1)==1)) 810 806 { … … 832 828 for(j=0;j<rPar(r2);j++) 833 829 { 834 for(l=0;l<i;l++)830 if (vartest) 835 831 { 836 if(strcmp(tmpR.parameter[l],r2->parameter[j])==0) 837 break; 832 for(l=0;l<i;l++) 833 { 834 if(strcmp(tmpR.parameter[l],r2->parameter[j])==0) 835 break; 836 } 838 837 } 838 else 839 l=i; 839 840 if (l==i) 840 841 { … … 983 984 else if ((r2->parameter!=NULL) && (strlen(r1->names[i])==1)) 984 985 { 985 for(j=0;j<rPar(r2);j++) 986 { 987 if (strcmp(r1->names[i],r2->parameter[j])==0) 988 { 989 b=FALSE; 990 break; 986 if (vartest) 987 { 988 for(j=0;j<rPar(r2);j++) 989 { 990 if (strcmp(r1->names[i],r2->parameter[j])==0) 991 { 992 b=FALSE; 993 break; 994 } 991 995 } 992 996 } … … 1012 1016 else if ((r1->parameter!=NULL) && (strlen(r2->names[i])==1)) 1013 1017 { 1014 for(j=0;j<rPar(r1);j++) 1015 { 1016 if (strcmp(r2->names[i],r1->parameter[j])==0) 1017 { 1018 b=FALSE; 1019 break; 1018 if (vartest) 1019 { 1020 for(j=0;j<rPar(r1);j++) 1021 { 1022 if (strcmp(r2->names[i],r1->parameter[j])==0) 1023 { 1024 b=FALSE; 1025 break; 1026 } 1020 1027 } 1021 1028 } … … 1024 1031 if (b) 1025 1032 { 1026 for(j=0;j<r1->N;j++) 1027 { 1028 if (strcmp(r1->names[j],r2->names[i])==0) 1029 { 1030 b=FALSE; 1031 break; 1033 if (vartest) 1034 { 1035 for(j=0;j<r1->N;j++) 1036 { 1037 if (strcmp(r1->names[j],r2->names[i])==0) 1038 { 1039 b=FALSE; 1040 break; 1041 } 1032 1042 } 1033 1043 } … … 1369 1379 1370 1380 /*2 1381 *returns -1 for not compatible, (sum is undefined) 1382 * 0 for equal, (and sum) 1383 * 1 for compatible (and sum) 1384 */ 1385 int rSum(ring r1, ring r2, ring &sum) 1386 { 1387 if (r1==r2) 1388 { 1389 sum=r1; 1390 r1->ref++; 1391 return 0; 1392 } 1393 return rTensor(r1,r2,sum,TRUE,FALSE); 1394 } 1395 1396 /*2 1371 1397 * create a copy of the ring r, which must be equivalent to currRing 1372 1398 * used for qring definition,.. … … 3592 3618 i++; 3593 3619 } while (1); 3620 WarnS("re-creating ring with comps"); 3594 3621 last_block=i-1; 3595 3622
Note: See TracChangeset
for help on using the changeset viewer.