Ignore:
Timestamp:
Jul 30, 2012, 5:19:40 PM (11 years ago)
Author:
Oleksandr Motsak <motsak@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', '1d362c315e551a5b527ab0759f8839cf0e94f3a5')
Children:
dd24e5dded66979eda13e955b93fc284cbb341e7
Parents:
c93fda01f3f4eb9609a2210ea9eec1816d8fb7f1
git-author:
Oleksandr Motsak <motsak@mathematik.uni-kl.de>2012-07-30 17:19:40+02:00
git-committer:
Oleksandr Motsak <motsak@mathematik.uni-kl.de>2014-05-07 04:41:46+02:00
Message:
introduced a bitmask of `leading` variables

NOTE: this is the 2nd Schreyer's optimization idea

chg: further removal of unused variables
File:
1 edited

Legend:

Unmodified
Added
Removed
  • dyn_modules/syzextra/syzextra.h

    rc93fda r026171  
    1717#define SYZEXTRA_H
    1818
     19#include <vector>
     20
    1921// include basic definitions
    2022#include "singularxx_defs.h"
     
    7880};
    7981
     82class SchreyerSyzygyComputation;
     83
     84class CLCM: public std::vector<bool>
     85{
     86  public:
     87    CLCM(const SchreyerSyzygyComputation& data);
     88
     89    bool Check(const poly m) const;
     90   
     91  private:
     92    const SchreyerSyzygyComputation& m_data;
     93
     94    bool m_compute;
     95};
    8096
    8197
     
    92108class SchreyerSyzygyComputation
    93109{
     110  friend class CLCM;
     111 
    94112  public:
     113
    95114    /// Construct a global object for given input data (separated into leads & tails)
    96115    SchreyerSyzygyComputation(const ideal idLeads, const ideal idTails, const ring rBaseRing, const SchreyerSyzygyComputationFlags attribues):
    97116        m_rBaseRing(rBaseRing),
    98117        m_idLeads(idLeads), m_idTails(idTails),
    99         m_syzLeads(NULL), m_syzTails(NULL), m_LS(NULL), m_atttributes(attribues) {}
     118        m_syzLeads(NULL), m_syzTails(NULL), m_LS(NULL), m_atttributes(attribues),
     119        m_lcm(*this)
     120    {
     121    }
    100122
    101123
     
    104126        m_rBaseRing(rBaseRing),
    105127        m_idLeads(idLeads), m_idTails(idTails),
    106         m_syzLeads(NULL), m_syzTails(NULL), m_LS(syzLeads), m_atttributes(attribues) {}
     128        m_syzLeads(NULL), m_syzTails(NULL), m_LS(syzLeads), m_atttributes(attribues),
     129        m_lcm(*this)
     130    {
     131    }
    107132
    108133   
     
    144169    /// leading + second terms
    145170    ideal Compute2LeadingSyzygyTerms();
    146    
    147    
     171
    148172    /// Clean up all the accumulated data
    149173    void CleanUp() {}
     
    168192
    169193    const SchreyerSyzygyComputationFlags m_atttributes;
     194
     195    /// Bitmask for variables occuring in leading terms
     196    const CLCM m_lcm;
    170197};
    171198
Note: See TracChangeset for help on using the changeset viewer.