Changeset 5f9b47 in git
- Timestamp:
- Oct 13, 2011, 4:28:33 PM (12 years ago)
- Branches:
- (u'spielwiese', '828514cf6e480e4bafc26df99217bf2a1ed1ef45')
- Children:
- a6423611ab89e02788fee9f049f4e6b2e2dac782
- Parents:
- c79a9d3a83d34151b67ba9ac3b63b827a07b792f
- Location:
- factory
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/facAlgExt.cc
rc79a9d r5f9b47 151 151 return CFFList (CFFactor (F, 1)); 152 152 153 CanonicalForm sqrf= uniSqrfPart (F);154 CFList sqrfFactors= AlgExtSqrfFactorize (sqrf, alpha);155 156 153 bool save_rat=!isOn (SW_RATIONAL); 157 154 On (SW_RATIONAL); 158 CanonicalForm quot, buf= F/Lc (F); 155 CFFList sqrf= sqrFreeZ (F); 156 CFList factorsSqrf; 159 157 CFFList factors; 160 int multi; 161 for (CFListIterator i= sqrfFactors; i.hasItem(); i++) 158 CFListIterator j; 159 160 for (CFFListIterator i= sqrf; i.hasItem(); i++) 162 161 { 163 multi= 0; 164 i.getItem() /= Lc (i.getItem()); //make factors monic 165 while (fdivides (i.getItem(), buf, quot)) 166 { 167 buf= quot; 168 multi++; 169 } 170 factors.append (CFFactor (i.getItem(), multi)); 162 if (i.getItem().factor().inCoeffDomain()) continue; 163 factorsSqrf= AlgExtSqrfFactorize (i.getItem().factor(), alpha); 164 for (j= factorsSqrf; j.hasItem(); j++) 165 factors.append (CFFactor (j.getItem()/Lc (j.getItem()), i.getItem().exp())); 171 166 } 167 172 168 factors.insert (CFFactor (Lc(F), 1)); 173 169 ASSERT (degree (buf) <= 0, "bug in AlgExtFactorize"); -
factory/facBivar.h
rc79a9d r5f9b47 126 126 vec_ZZ S; 127 127 F= compress (F, M, S); 128 CanonicalForm sqrfP= sqrfPart (F); 129 CFList buf; 130 buf= biFactorize (sqrfP, v); 131 result= multiplicity (F, buf); 132 for (CFFListIterator i= result; i.hasItem(); i++) 133 i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)), 134 i.getItem().exp()); 128 CFFList sqrfFactors= sqrFree (F); 129 for (CFFListIterator i= sqrfFactors; i.hasItem(); i++) 130 { 131 CFList tmp= ratBiSqrfFactorize (i.getItem().factor(), v); 132 for (CFListIterator j= tmp; j.hasItem(); j++) 133 { 134 if (j.getItem().inCoeffDomain()) continue; 135 result.append (CFFactor (N (decompress (j.getItem(), M, S)), i.getItem().exp())); 136 } 137 } 135 138 result= Union (result, contentXFactors); 136 139 result= Union (result, contentYFactors); -
factory/facFactorize.h
rc79a9d r5f9b47 34 34 /// element is the leading coefficient. 35 35 inline 36 CFList ratSqrfFactorize (const CanonicalForm & F, ///< [in] a multivariate poly36 CFList ratSqrfFactorize (const CanonicalForm & G, ///< [in] a multivariate poly 37 37 const Variable& v 38 38 ) 39 39 { 40 if (getNumVars (F) == 2) 41 return ratBiSqrfFactorize (F, v); 40 if (getNumVars (G) == 2) 41 return ratBiSqrfFactorize (G, v); 42 CanonicalForm F= G; 43 if (isOn (SW_RATIONAL)) 44 F *= bCommonDen (F); 42 45 CFList result= multiFactorize (F, v); 43 46 if (isOn (SW_RATIONAL)) … … 54 57 /// multiplicity, the first element is the leading coefficient. 55 58 inline 56 CFFList ratFactorize (const CanonicalForm& F, ///< [in] a multivariate poly59 CFFList ratFactorize (const CanonicalForm& G, ///< [in] a multivariate poly 57 60 const Variable& v 58 61 ) 59 62 { 60 if (getNumVars ( F) == 2)63 if (getNumVars (G) == 2) 61 64 { 62 CFFList result= ratBiFactorize ( F,v);65 CFFList result= ratBiFactorize (G,v); 63 66 return result; 64 67 } 65 Variable a= Variable (1);68 CanonicalForm F= G; 66 69 CanonicalForm LcF= Lc (F); 70 if (isOn (SW_RATIONAL)) 71 F *= bCommonDen (F); 67 72 68 CanonicalForm sqrfP= sqrfPart (F);69 CFList buf;70 73 CFFList result; 71 buf= multiFactorize (sqrfP, v); 72 CanonicalForm G= F; 73 result= multiplicity (G, buf); 74 CFFList sqrfFactors= sqrFree (F); 75 for (CFFListIterator i= sqrfFactors; i.hasItem(); i++) 76 { 77 CFList tmp= ratSqrfFactorize (i.getItem().factor(), v); 78 for (CFListIterator j= tmp; j.hasItem(); j++) 79 { 80 if (j.getItem().inCoeffDomain()) continue; 81 result.append (CFFactor (j.getItem(), i.getItem().exp())); 82 } 83 } 74 84 if (isOn (SW_RATIONAL)) 75 85 {
Note: See TracChangeset
for help on using the changeset viewer.