Changeset d51d87 in git for factory/facFqFactorize.cc
- Timestamp:
- Aug 30, 2013, 7:45:42 PM (11 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- c44f0c47dd0522db3b9d26283ffefec28e6d53aa
- Parents:
- 62e51f3a438d0476a7cc82ebe3df5d93b7a740b0035b6439d8381335d8497466228554322c60d1de
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/facFqFactorize.cc
r62e51f rd51d87 8 8 * 9 9 * ABSTRACT: "Efficient Multivariate Factorization over Finite Fields" by 10 * L. Bernardin & M. Monagon. Precomputation of leading coefficients is 10 * L. Bernardin & M. Monagon. Precomputation of leading coefficients is 11 11 * described in "Sparse Hensel lifting" by E. Kaltofen 12 12 * … … 743 743 int k= F.level() - 1; 744 744 Variable x= Variable (1); 745 CanonicalForm LCF=LC (F, x); 746 CFList LCFeval; 747 745 748 CFList result; 746 749 FFRandom genFF; … … 818 821 int l= F.level(); 819 822 eval.insert (F); 823 LCFeval.insert (LCF); 820 824 bool bad= false; 821 825 for (CFListIterator i= result; i.hasItem(); i++, l--) 822 826 { 823 827 eval.insert (eval.getFirst()(i.getItem(), l)); 828 LCFeval.insert (LCFeval.getFirst()(i.getItem(), l)); 824 829 if (degree (eval.getFirst(), l - 1) != degree (F, l - 1)) 825 830 { … … 828 833 result= CFList(); 829 834 eval= CFList(); 835 LCFeval= CFList(); 836 bad= true; 837 break; 838 } 839 if ((l != 2) && (degree (LCFeval.getFirst(), l-1) != degree (LCF, l-1))) 840 { 841 if (!find (list, random)) 842 list.append (random); 843 result= CFList(); 844 eval= CFList(); 845 LCFeval= CFList(); 830 846 bad= true; 831 847 break; … … 841 857 list.append (random); 842 858 result= CFList(); 859 LCFeval= CFList(); 843 860 eval= CFList(); 844 861 continue; … … 852 869 list.append (random); 853 870 result= CFList(); 871 LCFeval= CFList(); 854 872 eval= CFList(); 855 873 continue; … … 863 881 list.append (random); 864 882 result= CFList(); 883 LCFeval= CFList(); 865 884 eval= CFList(); 866 885 continue; … … 2014 2033 } 2015 2034 s++; 2016 if (T.length() < 2*s || T.length() == s) 2035 if (T.length() < 2*s || T.length() == s) 2017 2036 { 2018 2037 delete [] v; … … 3638 3657 #endif 3639 3658 /* HAVE_NTL */ 3640
Note: See TracChangeset
for help on using the changeset viewer.