Changeset 93134c in git for factory/facFqBivar.cc
- Timestamp:
- Jan 19, 2011, 8:01:25 PM (13 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- faacc9af4993a2cd9baf5e2c3630559360675eb3
- Parents:
- 4de1db931b2c71801f39c4b547b80ca57afb81a5
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/facFqBivar.cc
r4de1db r93134c 276 276 bool nosubset= false; 277 277 bool recombination= false; 278 bool trueFactor= false; 278 279 while (T.length() >= 2*s) 279 280 { … … 319 320 { 320 321 buf2= g (y - eval, y); 321 appendTestMapDown (result, buf2, info, source, dest); 322 buf2 /= Lc (buf2); 323 322 324 if (!k && beta == Variable (1)) 323 325 { … … 327 329 LCBuf= LC (buf, Variable (1)); 328 330 recombination= true; 331 appendTestMapDown (result, buf2, info, source, dest); 332 trueFactor= true; 329 333 } 330 334 } … … 336 340 LCBuf= LC (buf, Variable (1)); 337 341 recombination= true; 342 appendTestMapDown (result, buf2, info, source, dest); 343 trueFactor= true; 338 344 } 339 345 } 340 T= Difference (T, S); 341 // compute new possible degree pattern 342 bufDegs2= DegreePattern (T); 343 bufDegs1.intersect (bufDegs2); 344 bufDegs1.refine (); 345 if (T.length() < 2*s || T.length() == s || 346 bufDegs1.getLength() == 1) 346 if (trueFactor) 347 347 { 348 if (recombination) 348 T= Difference (T, S); 349 // compute new possible degree pattern 350 bufDegs2= DegreePattern (T); 351 bufDegs1.intersect (bufDegs2); 352 bufDegs1.refine (); 353 if (T.length() < 2*s || T.length() == s || 354 bufDegs1.getLength() == 1) 349 355 { 350 appendTestMapDown (result, buf (y - eval, y), info, source, 351 dest); 352 return result; 356 if (recombination) 357 { 358 appendTestMapDown (result, buf (y - eval, y), info, source, 359 dest); 360 return result; 361 } 362 else 363 { 364 appendMapDown (result, F (y - eval, y), info, source, dest); 365 return result; 366 } 353 367 } 354 else 355 { 356 appendMapDown (result, F (y - eval, y), info, source, dest); 357 return result; 358 } 368 trueFactor= false; 369 TT= copy (T); 370 indexUpdate (v, s, T.length(), nosubset); 371 if (nosubset) break; 359 372 } 360 TT= copy (T);361 indexUpdate (v, s, T.length(), nosubset);362 if (nosubset) break;363 373 } 364 374 } … … 609 619 CanonicalForm M= power (y, deg); 610 620 adaptedLiftBound= 0; 621 bool trueFactor= false; 611 622 int d; 612 623 if (degree (F) == degree (LCBuf)) … … 646 657 d -= degree (g) + degree (LC (g, Variable (1))); 647 658 LCBuf= LC (buf, Variable (1)); 659 trueFactor= true; 648 660 } 649 661 } … … 656 668 d -= degree (g) + degree (LC (g, Variable (1))); 657 669 LCBuf= LC (buf, Variable (1)); 670 trueFactor= true; 658 671 } 659 672 } 660 T= Difference (T, CFList (i.getItem())); 661 662 // compute new possible degree pattern 663 bufDegs2= DegreePattern (T); 664 bufDegs1.intersect (bufDegs2); 665 bufDegs1.refine (); 666 if (bufDegs1.getLength() <= 1) 673 if (trueFactor) 667 674 { 668 buf= buf (y - eval, y); 669 buf /= Lc (buf); 670 appendMapDown (result, buf, info, source, dest); 671 break; 675 T= Difference (T, CFList (i.getItem())); 676 677 // compute new possible degree pattern 678 bufDegs2= DegreePattern (T); 679 bufDegs1.intersect (bufDegs2); 680 bufDegs1.refine (); 681 trueFactor= false; 682 if (bufDegs1.getLength() <= 1) 683 { 684 buf= buf (y - eval, y); 685 buf /= Lc (buf); 686 appendMapDown (result, buf, info, source, dest); 687 break; 688 } 672 689 } 673 690 }
Note: See TracChangeset
for help on using the changeset viewer.