Changeset 5079887 in git for factory/facFactorize.cc
- Timestamp:
- Aug 8, 2012, 5:08:59 PM (11 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'c987db42cd2ec943b97ac5746c99892ceddf909c')
- Children:
- 79592ac0413bc31f4675cd016eba92870cff9765
- Parents:
- 464b18c0e995f211723d02ba1f0e3764e16f8c67
- git-author:
- Martin Lee <martinlee84@web.de>2012-08-08 17:08:59+02:00
- git-committer:
- Martin Lee <martinlee84@web.de>2012-09-04 18:01:17+02:00
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
factory/facFactorize.cc
r464b18 r5079887 906 906 A /= hh; 907 907 908 if (size (A)/getNumVars (A) < 500 &&909 908 CFList bufFactors= CFList(); 909 if (LucksWangSparseHeuristic (A, biFactors, 2, leadingCoeffs2 [A.level() - 3], 910 910 factors)) 911 911 { 912 int check= factors.length(); 913 factors= recoverFactors (A, factors); 912 int check= biFactors.length(); 913 int * index= new int [factors.length()]; 914 CFList oldFactors= factors; 915 factors= recoverFactors (A, factors, index); 914 916 915 917 if (check == factors.length()) 916 918 { 917 918 919 if (w.level() != 1) 919 920 { 920 for ( CFListIteratoriter= factors; iter.hasItem(); iter++)921 for (iter= factors; iter.hasItem(); iter++) 921 922 iter.getItem()= swapvar (iter.getItem(), w, y); 922 923 } … … 924 925 appendSwapDecompress (factors, contentAFactors, N, 0, 0, x); 925 926 normalize (factors); 927 delete [] index; 926 928 delete [] Aeval2; 927 929 return factors; 928 930 } 931 else if (factors.length() > 0) 932 { 933 int oneCount= 0; 934 CFList l; 935 for (int i= 0; i < check; i++) 936 { 937 if (index[i] == 1) 938 { 939 iter=biFactors; 940 for (int j=1; j <= i-oneCount; j++) 941 iter++; 942 iter.remove (1); 943 for (int j= 0; j < A.level() -2; j++) 944 { 945 l= leadingCoeffs2[j]; 946 iter= l; 947 for (int k=1; k <= i-oneCount; k++) 948 iter++; 949 iter.remove (1); 950 leadingCoeffs2[j]=l; 951 } 952 oneCount++; 953 } 954 } 955 bufFactors= factors; 956 factors= CFList(); 957 } 929 958 else 930 959 factors= CFList(); 931 }932 960 delete [] index; 961 } 933 962 934 963 //shifting to zero … … 1013 1042 if (check != factors.length()) 1014 1043 noOneToOne= true; 1044 else 1045 factors= Union (factors, bufFactors); 1015 1046 } 1016 1047 if (noOneToOne)
Note: See TracChangeset
for help on using the changeset viewer.