Changeset 9c48f08 in git


Ignore:
Timestamp:
Jul 27, 2016, 4:45:25 PM (8 years ago)
Author:
Andreas Steenpass <steenpass@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
353e59740153da5f7c66ce40ec97f46571896b9a
Parents:
8c03353daff3c76202c4a0cc2cff34080bbd7981
git-author:
Andreas Steenpass <steenpass@mathematik.uni-kl.de>2016-07-27 16:45:25+02:00
git-committer:
Andreas Steenpass <steenpass@mathematik.uni-kl.de>2017-12-15 12:17:07+01:00
Message:
chg: remove global variable m_div
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/GBEngine/syz4.cc

    r8c0335 r9c48f08  
    1515#include <map>
    1616
     17typedef struct {
     18    poly lt;
     19    unsigned long sev;
     20    unsigned int label;
     21} CLeadingTerm_struct;
     22
     23typedef std::vector<const CLeadingTerm_struct*> TReducers_test;
     24typedef std::map<long, TReducers_test> CReducersHash_test;
     25
    1726static poly TraverseTail_test(poly multiplier, const int tail,
    18    const ideal m_idTails_test, const std::vector<bool> &m_lcm);
     27   const ideal m_idTails_test, const std::vector<bool> &m_lcm,
     28   const CReducersHash_test *m_div);
    1929static poly ComputeImage_test(poly multiplier, const int tail,
    20     const ideal m_idTails_test, const std::vector<bool> &m_lcm);
     30    const ideal m_idTails_test, const std::vector<bool> &m_lcm,
     31    const CReducersHash_test *m_div);
    2132static poly TraverseTail_test(poly multiplier, poly tail,
    22     const ideal m_idTails_test, const std::vector<bool> &m_lcm);
     33    const ideal m_idTails_test, const std::vector<bool> &m_lcm,
     34    const CReducersHash_test *m_div);
    2335static inline poly ReduceTerm_test(poly multiplier, poly term4reduction,
    2436    poly syztermCheck, const ideal m_idTails_test,
    25     const std::vector<bool> &m_lcm);
     37    const std::vector<bool> &m_lcm, const CReducersHash_test *m_div);
    2638static poly leadmonom_test(const poly p, const ring r, const bool bSetZeroComp = true);
    2739
     
    5971
    6072static poly TraverseNF_test(const poly a, ideal m_idLeads_test,
    61     const ideal m_idTails_test, const std::vector<bool> &m_lcm)
     73    const ideal m_idTails_test, const std::vector<bool> &m_lcm,
     74    const CReducersHash_test *m_div)
    6275{
    6376  const ideal& L = m_idLeads_test;
     
    6578  const int r = p_GetComp(a, R) - 1;
    6679  poly aa = leadmonom_test(a, R);
    67   poly t = TraverseTail_test(aa, r, m_idTails_test, m_lcm);
    68   t = p_Add_q(t, ReduceTerm_test(aa, L->m[r], a, m_idTails_test, m_lcm), R);
     80  poly t = TraverseTail_test(aa, r, m_idTails_test, m_lcm, m_div);
     81  t = p_Add_q(t,
     82      ReduceTerm_test(aa, L->m[r], a, m_idTails_test, m_lcm, m_div), R);
    6983  p_Delete(&aa, R);
    7084  return t;
     
    122136
    123137static poly TraverseTail_test(poly multiplier, const int tail,
    124     const ideal m_idTails_test, const std::vector<bool> &m_lcm)
     138    const ideal m_idTails_test, const std::vector<bool> &m_lcm,
     139    const CReducersHash_test *m_div)
    125140{
    126141  const ring& r = currRing;
     
    144159       return p;
    145160     }
    146      const poly p = ComputeImage_test(multiplier, tail, m_idTails_test, m_lcm);
     161     const poly p
     162         = ComputeImage_test(multiplier, tail, m_idTails_test, m_lcm, m_div);
    147163     itr = T.find(multiplier);
    148164     if( itr == T.end() )
     
    155171  }
    156172#endif   // CACHE
    157   const poly p = ComputeImage_test(multiplier, tail, m_idTails_test, m_lcm);
     173  const poly p
     174      = ComputeImage_test(multiplier, tail, m_idTails_test, m_lcm, m_div);
    158175#if CACHE
    159176  top_itr = m_cache_test.find(tail);
     
    182199
    183200static poly ComputeImage_test(poly multiplier, const int tail,
    184     const ideal m_idTails_test, const std::vector<bool> &m_lcm)
     201    const ideal m_idTails_test, const std::vector<bool> &m_lcm,
     202    const CReducersHash_test *m_div)
    185203{
    186204  const poly t = m_idTails_test->m[tail];
    187205  if(t != NULL)
    188206  {
    189     const poly p = TraverseTail_test(multiplier, t, m_idTails_test, m_lcm);
     207    const poly p
     208        = TraverseTail_test(multiplier, t, m_idTails_test, m_lcm, m_div);
    190209    return p;
    191210  }
     
    200219
    201220static poly TraverseTail_test(poly multiplier, poly tail,
    202     const ideal m_idTails_test, const std::vector<bool> &m_lcm)
     221    const ideal m_idTails_test, const std::vector<bool> &m_lcm,
     222    const CReducersHash_test *m_div)
    203223{
    204224  const ring r = currRing;
     
    217237  {
    218238    const poly rt
    219         = ReduceTerm_test(multiplier, p, NULL, m_idTails_test, m_lcm);
     239        = ReduceTerm_test(multiplier, p, NULL, m_idTails_test, m_lcm, m_div);
    220240#if BUCKETS == 0
    221241    sum.Add(rt);
     
    292312}
    293313
    294 typedef struct {
    295     poly lt;
    296     unsigned long sev;
    297     unsigned int label;
    298 } CLeadingTerm_struct;
    299 
    300 typedef std::vector<const CLeadingTerm_struct*> TReducers_test;
    301 typedef std::map<long, TReducers_test> CReducersHash_test;
    302 
    303314static void deleteCRH(CReducersHash_test *C)
    304315{
     
    323334
    324335static CReducersHash_test m_checker;
    325 static CReducersHash_test m_div;
    326336
    327337bool IsDivisible(const CReducersHash_test *C, const poly product);
    328338
    329339poly FindReducer(const poly multiplier, const poly t, const poly syzterm,
    330     const CReducersHash_test &syz_checker)
     340    const CReducersHash_test &syz_checker, const CReducersHash_test *m_div)
    331341{
    332342  const ring r = currRing;
    333343  CReducersHash_test::const_iterator m_itr
    334       = m_div.find(p_GetComp(t, currRing));
    335   if (m_itr == m_div.end()) {
     344      = m_div->find(p_GetComp(t, currRing));
     345  if (m_itr == m_div->end()) {
    336346    return NULL;
    337347  }
     
    402412static inline poly ReduceTerm_test(poly multiplier, poly term4reduction,
    403413    poly syztermCheck, const ideal m_idTails_test,
    404     const std::vector<bool> &m_lcm)
     414    const std::vector<bool> &m_lcm, const CReducersHash_test *m_div)
    405415{
    406416  const ring r = currRing;
     
    408418  if( CLCM_test_Check(m_lcm, multiplier) )
    409419  {
    410     s = FindReducer(multiplier, term4reduction, syztermCheck, m_checker);
     420    s = FindReducer(multiplier, term4reduction, syztermCheck, m_checker,
     421        m_div);
    411422  }
    412423  if( s == NULL )
     
    416427  poly b = leadmonom_test(s, r);
    417428  const int c = p_GetComp(s, r) - 1;
    418   const poly t = TraverseTail_test(b, c, m_idTails_test, m_lcm);
     429  const poly t = TraverseTail_test(b, c, m_idTails_test, m_lcm, m_div);
    419430  pDelete(&b);
    420431  if( t != NULL )
     
    620631    const ideal m_idLeads_test, const ideal m_syzLeads_test)
    621632{
    622     redefine(&m_div, m_idLeads_test);
    623633    redefine(&m_checker, m_syzLeads_test);
    624634#if CACHE
     
    652662    }
    653663    std::vector<bool> m_lcm = CLCM_test_redefine(m_idLeads_test);
     664    CReducersHash_test m_div;
     665    initialize(m_div, m_idLeads_test);
    654666    ideal m_syzLeads_test = idCopy(res[index]);
    655667    for (int i = IDELEMS(res[index])-1; i >= 0; i--) {
     
    664676        p->next = NULL;
    665677        res[index]->m[j]->next
    666             = TraverseNF_test(p, m_idLeads_test, m_idTails_test, m_lcm);
    667     }
     678            = TraverseNF_test(p, m_idLeads_test, m_idTails_test, m_lcm, &m_div);
     679    }
     680    deleteCRH(&m_div);
    668681    m_lcm.clear();
    669682    idDelete(&m_idLeads_test);
     
    733746
    734747    deleteCRH(&m_checker);
    735     deleteCRH(&m_div);
    736748#if CACHE
    737749    for (TCache_test::iterator it = m_cache_test.begin();
Note: See TracChangeset for help on using the changeset viewer.