Changeset 9ae29a in git
- Timestamp:
- Jul 7, 2010, 8:02:01 PM (13 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'f875bbaccd0831e36aaed09ff6adeb3eb45aeb94')
- Children:
- 99af0d3e643769a827817de5d58cba7541a19539
- Parents:
- 7c5dd189445ad8976fffa1f14278ff4b3f086575
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/ring.cc
r7c5dd1 r9ae29a 789 789 * 1 for compatible (and sum) 790 790 */ 791 /* 791 /* vartest: test for variable/paramter names 792 792 * dp_dp: for comm. rings: use block order dp + dp/ds/wp 793 793 */ 794 int rSumInternal(ring r1, ring r2, ring &sum, BOOLEAN dp_dp)794 int rSumInternal(ring r1, ring r2, ring &sum, BOOLEAN vartest, BOOLEAN dp_dp) 795 795 { 796 796 ring save=currRing; … … 805 805 if (r1->parameter!=NULL) 806 806 { 807 if (!vartest || (strcmp(r1->parameter[0],r2->parameter[0])==0)) /* 1 par */ 808 { 807 809 tmpR.parameter=(char **)omAllocBin(char_ptr_bin); 808 810 tmpR.parameter[0]=omStrDup(r1->parameter[0]); 809 811 tmpR.P=1; 812 } 813 else 814 { 815 WerrorS("GF(p,n)+GF(p,n)"); 816 return -1; 817 } 810 818 } 811 819 } … … 818 826 // HANNES: TODO: delete nSetChar 819 827 rChangeCurrRing(r1); 820 if (n_Equal(r1->minpoly,r2->minpoly, r1)) 828 if ((!vartest || (strcmp(r1->parameter[0],r2->parameter[0])==0)) /* 1 par */ 829 && n_Equal(r1->minpoly,r2->minpoly, r1)) 821 830 { 822 831 tmpR.parameter=(char **)omAllocBin(char_ptr_bin); … … 837 846 else 838 847 { 839 if (rPar(r2)==1) 848 if ((!vartest || (strcmp(r1->parameter[0],r2->parameter[0])==0)) /* 1 par */ 849 && (rPar(r2)==1)) 840 850 { 841 851 tmpR.parameter=(char **)omAllocBin(char_ptr_bin); … … 855 865 if (r2->minpoly!=NULL) 856 866 { 857 if (rPar(r1)==1) 867 if ((!vartest || (strcmp(r1->parameter[0],r2->parameter[0])==0)) /* 1 par */ 868 && (rPar(r1)==1)) 858 869 { 859 870 tmpR.parameter=(char **)omAllocBin(char_ptr_bin); … … 880 891 for(j=0;j<rPar(r2);j++) 881 892 { 882 l=i; 883 tmpR.parameter[i]=omStrDup(r2->parameter[j]); 884 i++; 893 if (vartest) 894 { 895 for(l=0;l<i;l++) 896 { 897 if(strcmp(tmpR.parameter[l],r2->parameter[j])==0) 898 break; 899 } 900 } 901 else 902 l=i; 903 if (l==i) 904 { 905 tmpR.parameter[i]=omStrDup(r2->parameter[j]); 906 i++; 907 } 885 908 } 886 909 if (i!=len) … … 1022 1045 if (*(r1->names[i]) == '\0') 1023 1046 b = FALSE; 1047 else if ((r2->parameter!=NULL) && (strlen(r1->names[i])==1)) 1048 { 1049 if (vartest) 1050 { 1051 for(j=0;j<rPar(r2);j++) 1052 { 1053 if (strcmp(r1->names[i],r2->parameter[j])==0) 1054 { 1055 b=FALSE; 1056 break; 1057 } 1058 } 1059 } 1060 } 1024 1061 1025 1062 if (b) … … 1040 1077 if (*(r2->names[i]) == '\0') 1041 1078 b = FALSE; 1079 else if ((r1->parameter!=NULL) && (strlen(r2->names[i])==1)) 1080 { 1081 if (vartest) 1082 { 1083 for(j=0;j<rPar(r1);j++) 1084 { 1085 if (strcmp(r2->names[i],r1->parameter[j])==0) 1086 { 1087 b=FALSE; 1088 break; 1089 } 1090 } 1091 } 1092 } 1042 1093 1043 1094 if (b) 1044 1095 { 1045 //Print("name : %d : %s\n",k,r2->names[i]); 1046 names[k]=omStrDup(r2->names[i]); 1047 k++; 1096 if (vartest) 1097 { 1098 for(j=0;j<r1->N;j++) 1099 { 1100 if (strcmp(r1->names[j],r2->names[i])==0) 1101 { 1102 b=FALSE; 1103 break; 1104 } 1105 } 1106 } 1107 if (b) 1108 { 1109 //Print("name : %d : %s\n",k,r2->names[i]); 1110 names[k]=omStrDup(r2->names[i]); 1111 k++; 1112 } 1113 //else 1114 // Print("no name (var): %s\n",r2->names[i]); 1048 1115 } 1049 1116 //else
Note: See TracChangeset
for help on using the changeset viewer.