Changeset 349ee0c in git for Singular/dyn_modules/syzextra/syzextra.h
- Timestamp:
- Feb 1, 2018, 3:15:38 PM (6 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', '38dfc5131670d387a89455159ed1e071997eec94')
- Children:
- 68395808f4180002f73bcf7dd2f2447899b0d865
- Parents:
- 6777f2415ca33645c59e3d8e9bd5210e5f2b3ff4
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/dyn_modules/syzextra/syzextra.h
r6777f2 r349ee0c 71 71 private: 72 72 typedef std::stack <sBucket_pt> Base; 73 // typedef std::vector<Bucket> Memory;74 // typedef std::deque <Bucket> Memory;75 // typedef std::stack <Bucket, Memory > Base;76 73 77 74 public: … … 79 76 80 77 SBucketFactory(const ring r) 81 #ifndef SING_NDEBUG82 : m_ring(r)83 #endif84 78 { 85 79 push ( _CreateBucket(r) ); // start with at least one sBucket...? … … 98 92 Bucket getBucket(const ring r, const bool remove = true) 99 93 { 100 assume( r == m_ring );101 102 94 Bucket bt = NULL; 103 95 … … 121 113 122 114 assume( bt != NULL ); 123 assume( _IsBucketEmpty(bt) );124 assume( r == _GetBucketRing(bt) );125 115 126 116 return bt; … … 131 121 { 132 122 assume( bt != NULL ); 133 assume( _IsBucketEmpty(bt) );134 assume( m_ring == _GetBucketRing(bt) );135 123 136 124 if( empty() ) … … 151 139 152 140 private: 153 154 #ifndef SING_NDEBUG155 const ring m_ring; ///< For debugging: all buckets are over the same ring... right?!156 157 /// get bucket ring158 static ring _GetBucketRing(const Bucket& bt);159 160 static bool _IsBucketEmpty(const Bucket& bt);161 #endif162 163 141 /// inital allocation for new buckets 164 142 static Bucket _CreateBucket(const ring r); … … 258 236 CLeadingTerm(unsigned int label, const poly lt, const ring); 259 237 260 #ifndef SING_NDEBUG261 ~CLeadingTerm();262 #endif263 264 238 #if NOPRODUCT 265 239 bool DivisibilityCheck(const poly multiplier, const poly t, const unsigned long not_sev, const ring r) const; … … 269 243 bool CheckLT( const ideal & L ) const; 270 244 271 #ifndef SING_NDEBUG272 poly lt() const;273 unsigned long sev() const;274 unsigned int label() const;275 #else276 245 inline poly lt() const { return m_lt; }; 277 246 inline unsigned long sev() const { return m_sev; }; 278 247 inline unsigned int label() const { return m_label; }; 279 #endif280 281 248 private: 282 249 const unsigned long m_sev; ///< not short exp. vector … … 286 253 287 254 const poly m_lt; ///< the leading term itself L[label-1] 288 289 #ifndef SING_NDEBUG290 const ring _R;291 292 const poly m_lt_copy; ///< original copy of LEAD(lt) (only for debug!!!)293 #endif294 255 295 256 // disable the following: … … 340 301 /// is the term to be "preprocessed" as lower order term or lead to only reducible syzygies... 341 302 int PreProcessTerm(const poly t, CReducerFinder& syzChecker) const; 342 343 #ifndef SING_NDEBUG344 void DebugPrint() const;345 void Verify() const;346 #endif347 303 348 304 private: … … 525 481 CReducerFinder m_checker; 526 482 527 /*528 // need more data here:529 // (m_idLeads : m_tailterm) = (m, pos, compl), s.th: compl * m_tailterm divides m_idLeads[pos]530 // but resulting sysygy compl * gen(pos) should not be in531 // Idea: extend CReducerFinder??!!532 struct CTailTerm533 {534 const poly m_tailterm;535 536 const CReducerFinder m_reducers; // positions are labels (in m_idLeads)...537 // compl - to be computed if needed?538 539 CTailTerm(const poly tt, const CReducerFinder reds): m_tailterm(tt), m_reducers(reds) {}540 };541 542 typedef std::vector<const CTailTerm*> TTail;543 typedef std::vector<TTail> TTailTerms;544 545 TTailTerms m_idTailTerms;546 */547 548 483 mutable TCache m_cache; // cacher comp + poly -> poly! // mutable??? 549 550 /// TODO: look into m_idTailTerms!!!!!!!!!!!!!!!!!!!!!!!! map? heaps???551 // NOTE/TODO: the following globally shared buckets violate reentrance - they should rather belong to TLS!552 484 553 485 /// used for simple summing up
Note: See TracChangeset
for help on using the changeset viewer.