Changeset 0838d7 in git for dyn_modules/syzextra/syzextra.cc
- Timestamp:
- Nov 22, 2012, 10:25:46 PM (11 years ago)
- Branches:
- (u'spielwiese', 'd1ba061a762c62d3a25159d8da8b6e17332291fa')
- Children:
- c4138f219380e1837aed8b4bcdfc42c73bee603b
- Parents:
- 4ca3e3c15a08dab1cfe6bed017b0254dc13734b3
- git-author:
- Oleksandr Motsak <motsak@mathematik.uni-kl.de>2012-11-22 22:25:46+01:00
- git-committer:
- Oleksandr Motsak <motsak@mathematik.uni-kl.de>2014-05-07 04:41:48+02:00
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
dyn_modules/syzextra/syzextra.cc
r4ca3e3 r0838d7 33 33 34 34 #include <polys/kbuckets.h> // for kBucket* 35 #include <polys/nc/summator.h> // for CPolynomialSummator 35 #include <polys/sbuckets.h> // for sBucket* 36 //#include <polys/nc/summator.h> // for CPolynomialSummator 36 37 #include <polys/operations/p_Mult_q.h> // for MIN_LENGTH_BUCKET 37 38 … … 237 238 extern void id_Delete (ideal*, const ring); 238 239 239 id_Delete(const_cast<ideal*>(&m_idTails), m_rBaseRing); // TODO!!! 240 id_Delete(const_cast<ideal*>(&m_idTails), m_rBaseRing); // TODO!!! 241 242 if( m_sum_bucket != NULL ) 243 { 244 sBucketDestroy(&m_sum_bucket); 245 m_sum_bucket = NULL; 246 } 247 248 if( m_spoly_bucket != NULL ) 249 { 250 kBucketDestroy(&m_spoly_bucket); 251 m_spoly_bucket = NULL; 252 } 240 253 } 241 254 /* … … 740 753 const ring& R = m_rBaseRing; 741 754 755 if( m_sum_bucket == NULL ) 756 m_sum_bucket = sBucketCreate(R); 757 758 if( m_spoly_bucket == NULL ) 759 m_spoly_bucket = kBucketCreate(R); 760 761 742 762 assume( IDELEMS(L) == IDELEMS(T) ); 743 763 #ifndef NDEBUG … … 941 961 942 962 assume( c >= 0 && c < IDELEMS(T) ); 943 kBucket_pt bucket = kBucketCreate(r); kbTest(bucket); 963 sBucket_pt& tail = m_sum_bucket; assume( tail != NULL ); 964 kBucket_pt& bucket = m_spoly_bucket; assume( bucket != NULL ); kbTest(bucket); 965 944 966 945 967 // kBucketInit(bucket, NULL, 0); // not needed!? … … 947 969 poly p = leadmonom(syz_lead, r); // :( 948 970 // poly spoly = pp_Mult_qq(p, T->m[c], r); 949 kBucket_Plus_mm_Mult_pp(bucket, p, T->m[c], pLength(T->m[c])); // TODO: store length of tails separately!? 971 kBucket_Plus_mm_Mult_pp(bucket, p, T->m[c], 0); // TODO: store pLength(T->m[c]) separately!? 972 p_Delete(&p, r); 973 950 974 kbTest(bucket); 951 p_Delete(&p, r);952 975 953 976 c = p_GetComp(syz_2, r) - 1; … … 956 979 p = leadmonom(syz_2, r); // :( 957 980 // spoly = p_Add_q(spoly, pp_Mult_qq(p, T->m[c], r), r); 958 kBucket_Plus_mm_Mult_pp(bucket, p, T->m[c], pLength(T->m[c]));981 kBucket_Plus_mm_Mult_pp(bucket, p, T->m[c], 0); // pLength(T->m[c])?! 959 982 kbTest(bucket); 960 983 p_Delete(&p, r); 961 984 962 985 // TODO: use bucket!? 963 const bool bUsePolynomial = TEST_OPT_NOT_BUCKETS; // || (pLength(spoly) < MIN_LENGTH_BUCKET); 964 CPolynomialSummator tail(r, bUsePolynomial); 965 tail.AddAndDelete(syz_2, 1); 966 986 // const bool bUsePolynomial = TEST_OPT_NOT_BUCKETS; // || (pLength(spoly) < MIN_LENGTH_BUCKET); 987 // CPolynomialSummator tail(r, bUsePolynomial); 988 sBucket_Add_p(tail, syz_2, 1); // tail.AddAndDelete(syz_2, 1); 967 989 968 990 kbTest(bucket); … … 979 1001 assume( c >= 0 && c < IDELEMS(T) ); 980 1002 981 kBucket_Plus_mm_Mult_pp(bucket, p, T->m[c], pLength(T->m[c]));1003 kBucket_Plus_mm_Mult_pp(bucket, p, T->m[c], 0); // pLength(T->m[c])? 982 1004 // spoly = p_Add_q(spoly, pp_Mult_qq(p, T->m[c], r), r); 983 1005 984 1006 p_Delete(&p, r); 985 1007 986 tail.AddAndDelete(t, 1);1008 sBucket_Add_p(tail, t, 1); // tail.AddAndDelete(t, 1); 987 1009 } // otherwise discard that leading term altogether! 988 1010 kbTest(bucket); … … 992 1014 kbTest(bucket); 993 1015 assume( kBucketClear(bucket) == NULL ); 994 kBucketDestroy(&bucket); // TODO: reuse the bucket!!! 995 996 return tail; 1016 1017 poly result; int len; 1018 sBucketClearAdd(tail, &result, &len); // TODO: use Merge with sBucket??? 1019 assume( pLength(result) == len ); 1020 1021 return result; 997 1022 } 998 1023 … … 1028 1053 if( (!__TAILREDSYZ__) || m_lcm.Check(multiplier) ) 1029 1054 { 1030 const bool bUsePolynomial = TEST_OPT_NOT_BUCKETS; // || (pLength(tail) < MIN_LENGTH_BUCKET); 1031 CPolynomialSummator sum(r, bUsePolynomial); 1055 // const bool bUsePolynomial = TEST_OPT_NOT_BUCKETS; // || (pLength(tail) < MIN_LENGTH_BUCKET); 1056 sBucket_pt& sum = m_sum_bucket; assume( sum != NULL ); 1057 poly s; int len; 1058 1059 // CPolynomialSummator sum(r, bUsePolynomial); 1032 1060 // poly s = NULL; 1033 1061 for(poly p = tail; p != NULL; p = pNext(p)) // iterate over the tail 1034 sum += ReduceTerm(multiplier, p, NULL); 1035 return sum; 1062 { 1063 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1064 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1065 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1066 const poly rt = ReduceTerm(multiplier, p, NULL); // TODO: also return/store length? 1067 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1068 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1069 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1070 1071 const int lp = pLength(rt); 1072 if( rt != NULL && lp != 0 ) 1073 sBucket_Add_p(sum, rt, lp); 1074 } 1075 1076 sBucketClearAdd(sum, &s, &len); 1077 assume( pLength(s) == len ); 1078 return s; 1036 1079 } 1037 1080
Note: See TracChangeset
for help on using the changeset viewer.