Changeset 5cecde in git for dyn_modules/syzextra/syzextra.h
- Timestamp:
- Aug 2, 2012, 9:58:56 PM (11 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'c987db42cd2ec943b97ac5746c99892ceddf909c')
- Children:
- e98c64edd3cf15f4e5d15991052a7bbcbb1184a5
- Parents:
- 495328d14a955b215ad10b598e995ab522243881
- git-author:
- Oleksandr Motsak <motsak@mathematik.uni-kl.de>2012-08-02 21:58:56+02:00
- git-committer:
- Oleksandr Motsak <motsak@mathematik.uni-kl.de>2014-05-07 04:41:46+02:00
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
dyn_modules/syzextra/syzextra.h
r495328 r5cecde 95 95 { 96 96 public: 97 CLCM(const SchreyerSyzygyComputation& data);97 CLCM(const ideal& L, const SchreyerSyzygyComputationFlags& flags); 98 98 99 99 bool Check(const poly m) const; 100 100 101 101 private: 102 const SchreyerSyzygyComputation& m_data;103 104 102 bool m_compute; 103 104 const unsigned int m_N; ///< number of ring variables 105 105 }; 106 106 … … 130 130 131 131 public: 132 133 132 /// goes over all leading terms 134 CReducerFinder(const SchreyerSyzygyComputation& data); 133 CReducerFinder(const ideal L, const SchreyerSyzygyComputationFlags& flags); 134 135 void Initialize(const ideal L); 135 136 136 137 ~CReducerFinder(); 137 138 138 139 // TODO: save shortcut (syz: |-.->) LM(LM(m) * "t") -> syz? 139 poly FindReducer(const poly product, const poly syzterm) const; 140 poly FindReducer(const poly product, const poly syzterm, const CReducerFinder& checker) const; 141 142 bool IsDivisible(const poly q) const; 143 144 bool IsNonempty() const { return (m_hash.size() > 0); } 140 145 141 146 private: 142 const SchreyerSyzygyComputation& m_data;147 ideal m_L; ///< only for debug 143 148 144 149 CReducersHash m_hash; // can also be replaced with a vector indexed by components … … 169 174 m_idLeads(idLeads), m_idTails(idTails), 170 175 m_syzLeads(NULL), m_syzTails(NULL), m_LS(NULL), 171 m_lcm( *this), m_div(*this)176 m_lcm(m_idLeads, setting), m_div(m_idLeads, setting), m_checker(NULL, setting) 172 177 { 173 178 } 174 175 179 176 180 /// Construct a global object for given input data (separated into leads & tails) … … 178 182 SchreyerSyzygyComputationFlags(setting), 179 183 m_idLeads(idLeads), m_idTails(idTails), 180 m_syzLeads( NULL), m_syzTails(NULL), m_LS(syzLeads),181 m_lcm( *this), m_div(*this)184 m_syzLeads(syzLeads), m_syzTails(NULL), m_LS(syzLeads), 185 m_lcm(m_idLeads, setting), m_div(m_idLeads, setting), m_checker(NULL, setting) 182 186 { 187 if( __TAILREDSYZ__ && syzLeads != NULL ) 188 m_checker.Initialize(syzLeads); 183 189 } 184 190 … … 214 220 /// just for testing via the wrapper below 215 221 inline poly _FindReducer(const poly product, const poly syzterm) const 216 { return m_div.FindReducer(product, syzterm ); }222 { return m_div.FindReducer(product, syzterm, m_checker); } 217 223 218 224 protected: … … 240 246 ideal m_syzTails; 241 247 242 /*mutable?*/ ideal m_LS; ///< leading syzygy terms used for reducing syzygy tails243 244 248 /// Bitmask for variables occuring in leading terms 245 249 const CLCM m_lcm; … … 247 251 /// Divisor finder 248 252 const CReducerFinder m_div; 253 254 /// for checking tail-terms and makeing them irreducible (wrt m_LS!) 255 CReducerFinder m_checker; 256 257 /*mutable?*/ ideal m_LS; ///< leading syzygy terms used for reducing syzygy tails 249 258 }; 250 259
Note: See TracChangeset
for help on using the changeset viewer.