Changeset 4cf4dc in git for factory/facFactorize.cc
- Timestamp:
- Aug 20, 2012, 9:44:16 PM (12 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 589ef64cf8eb3dc278fc36630707eda2b0125578
- Parents:
- 27e0172370323ce80587df1d73a66392a08a5c03
- git-author:
- Martin Lee <martinlee84@web.de>2012-08-20 21:44:16+02:00
- git-committer:
- Martin Lee <martinlee84@web.de>2012-09-04 18:01:18+02:00
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/facFactorize.cc
r27e0172 r4cf4dc 1055 1055 foundMultiplier= true; 1056 1056 iter.getItem()= 1; 1057 break;1058 1057 } 1059 1058 } … … 1067 1066 for (iter= contents; iter.hasItem(); iter++, iter2++, index++) 1068 1067 { 1069 if (! (iter.getItem().isOne()) &&1068 if (!iter.getItem().isOne() && 1070 1069 fdivides (iter.getItem(), LCmultiplier)) 1071 1070 { … … 1086 1085 LCmultiplier /= iter.getItem(); 1087 1086 iter.getItem()= 1; 1088 break;1089 1087 } 1090 1088 else //factor consists of just leading coeff 1091 1089 { 1092 CanonicalForm vars=getVars (iter.getItem());1093 CanonicalForm factor;1094 Variable xx;1095 bool oneVariableNotInCommon= false;1096 for (int i= 0; i < A.level() -2; i++)1090 Variable xx= Variable (2); 1091 CanonicalForm vars; 1092 vars= power (xx, degree (LC (getItem(oldBiFactors, index),1), 1093 xx)); 1094 for (int i= 0; i < A.level() -2; i++) 1097 1095 { 1098 1096 if (oldAeval[i].isEmpty()) 1099 1097 continue; 1100 1098 xx= oldAeval[i].getFirst().mvar(); 1101 factor= LC (getItem (oldAeval[i], index),1); 1102 if ((factor.inCoeffDomain() && degree (vars,xx) > 0) || 1103 (degree (factor,xx) > 0 && degree (vars,xx) <= 0)) //scan for bivariate factors with leading coeff that does not contain variables which occur in LCmultiplier 1104 { 1105 oneVariableNotInCommon= true; 1106 break; 1107 } 1099 vars *= power (xx, degree (LC (getItem(oldAeval[i], index),1), 1100 xx)); 1108 1101 } 1109 if (oneVariableNotInCommon) 1102 if (myGetVars(content(getItem(leadingCoeffs2[A.level()-3],index),1)) 1103 /myGetVars (LCmultiplier) == vars) 1110 1104 { 1111 1105 int index2= 1; … … 1115 1109 if (index2 == index) 1116 1110 { 1117 iter2.getItem() /= iter.getItem();1111 iter2.getItem() /= LCmultiplier; 1118 1112 foundMultiplier= true; 1119 1113 break; 1120 1114 } 1121 1115 } 1122 A /= iter.getItem(); 1123 LCmultiplier /= iter.getItem(); 1116 A /= LCmultiplier; 1124 1117 iter.getItem()= 1; 1125 break;1126 }1127 }1128 }1129 }1130 // wipe out the last LCmultiplier1131 if (foundMultiplier)1132 {1133 index= 1;1134 for (iter= contents; iter.hasItem(); iter++, index++)1135 {1136 if (!iter.getItem().isOne() &&1137 fdivides (LCmultiplier, iter.getItem()))1138 {1139 int index2= 1;1140 for (iter2= leadingCoeffs2[A.level()-3]; iter2.hasItem();1141 iter2++, index2++)1142 {1143 if (index2 == index)1144 {1145 iter2.getItem() /= LCmultiplier;1146 A /= LCmultiplier;1147 iter.getItem() /= LCmultiplier;1148 }1149 1118 } 1150 1119 }
Note: See TracChangeset
for help on using the changeset viewer.