Changeset 353e59 in git


Ignore:
Timestamp:
Jul 27, 2016, 5:00:31 PM (8 years ago)
Author:
Andreas Steenpass <steenpass@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
836c32b3197962be95ef162f975a4a1adc2142c2
Parents:
9c48f0827286be71babfeda0326922f9a1fc91e1
git-author:
Andreas Steenpass <steenpass@mathematik.uni-kl.de>2016-07-27 17:00:31+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_checker
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/GBEngine/syz4.cc

    r9c48f08 r353e59  
    2626static poly TraverseTail_test(poly multiplier, const int tail,
    2727   const ideal m_idTails_test, const std::vector<bool> &m_lcm,
    28    const CReducersHash_test *m_div);
     28   const CReducersHash_test *m_div, const CReducersHash_test *m_checker);
    2929static poly ComputeImage_test(poly multiplier, const int tail,
    3030    const ideal m_idTails_test, const std::vector<bool> &m_lcm,
    31     const CReducersHash_test *m_div);
     31    const CReducersHash_test *m_div, const CReducersHash_test *m_checker);
    3232static poly TraverseTail_test(poly multiplier, poly tail,
    3333    const ideal m_idTails_test, const std::vector<bool> &m_lcm,
    34     const CReducersHash_test *m_div);
     34    const CReducersHash_test *m_div, const CReducersHash_test *m_checker);
    3535static inline poly ReduceTerm_test(poly multiplier, poly term4reduction,
    3636    poly syztermCheck, const ideal m_idTails_test,
    37     const std::vector<bool> &m_lcm, const CReducersHash_test *m_div);
     37    const std::vector<bool> &m_lcm, const CReducersHash_test *m_div,
     38    const CReducersHash_test *m_checker);
    3839static poly leadmonom_test(const poly p, const ring r, const bool bSetZeroComp = true);
    3940
     
    7273static poly TraverseNF_test(const poly a, ideal m_idLeads_test,
    7374    const ideal m_idTails_test, const std::vector<bool> &m_lcm,
    74     const CReducersHash_test *m_div)
     75    const CReducersHash_test *m_div, const CReducersHash_test *m_checker)
    7576{
    7677  const ideal& L = m_idLeads_test;
     
    7879  const int r = p_GetComp(a, R) - 1;
    7980  poly aa = leadmonom_test(a, R);
    80   poly t = TraverseTail_test(aa, r, m_idTails_test, m_lcm, m_div);
     81  poly t = TraverseTail_test(aa, r, m_idTails_test, m_lcm, m_div, m_checker);
    8182  t = p_Add_q(t,
    82       ReduceTerm_test(aa, L->m[r], a, m_idTails_test, m_lcm, m_div), R);
     83      ReduceTerm_test(aa, L->m[r], a, m_idTails_test, m_lcm, m_div, m_checker),
     84      R);
    8385  p_Delete(&aa, R);
    8486  return t;
     
    137139static poly TraverseTail_test(poly multiplier, const int tail,
    138140    const ideal m_idTails_test, const std::vector<bool> &m_lcm,
    139     const CReducersHash_test *m_div)
     141    const CReducersHash_test *m_div, const CReducersHash_test *m_checker)
    140142{
    141143  const ring& r = currRing;
     
    159161       return p;
    160162     }
    161      const poly p
    162          = ComputeImage_test(multiplier, tail, m_idTails_test, m_lcm, m_div);
     163     const poly p = ComputeImage_test(multiplier, tail, m_idTails_test, m_lcm,
     164         m_div, m_checker);
    163165     itr = T.find(multiplier);
    164166     if( itr == T.end() )
     
    171173  }
    172174#endif   // CACHE
    173   const poly p
    174       = ComputeImage_test(multiplier, tail, m_idTails_test, m_lcm, m_div);
     175  const poly p = ComputeImage_test(multiplier, tail, m_idTails_test, m_lcm,
     176      m_div, m_checker);
    175177#if CACHE
    176178  top_itr = m_cache_test.find(tail);
     
    200202static poly ComputeImage_test(poly multiplier, const int tail,
    201203    const ideal m_idTails_test, const std::vector<bool> &m_lcm,
    202     const CReducersHash_test *m_div)
     204    const CReducersHash_test *m_div, const CReducersHash_test *m_checker)
    203205{
    204206  const poly t = m_idTails_test->m[tail];
    205207  if(t != NULL)
    206208  {
    207     const poly p
    208         = TraverseTail_test(multiplier, t, m_idTails_test, m_lcm, m_div);
     209    const poly p = TraverseTail_test(multiplier, t, m_idTails_test, m_lcm,
     210        m_div, m_checker);
    209211    return p;
    210212  }
     
    220222static poly TraverseTail_test(poly multiplier, poly tail,
    221223    const ideal m_idTails_test, const std::vector<bool> &m_lcm,
    222     const CReducersHash_test *m_div)
     224    const CReducersHash_test *m_div, const CReducersHash_test *m_checker)
    223225{
    224226  const ring r = currRing;
     
    236238  for(poly p = tail; p != NULL; p = pNext(p))   // iterate over the tail
    237239  {
    238     const poly rt
    239         = ReduceTerm_test(multiplier, p, NULL, m_idTails_test, m_lcm, m_div);
     240    const poly rt = ReduceTerm_test(multiplier, p, NULL, m_idTails_test, m_lcm,
     241        m_div, m_checker);
    240242#if BUCKETS == 0
    241243    sum.Add(rt);
     
    325327}
    326328
    327 static void initialize(CReducersHash_test &C, const ideal L);
    328 
    329 static void redefine(CReducersHash_test *C, const ideal L)
    330 {
    331     deleteCRH(C);
    332     initialize(*C, L);
    333 }
    334 
    335 static CReducersHash_test m_checker;
    336 
    337329bool IsDivisible(const CReducersHash_test *C, const poly product);
    338330
    339331poly FindReducer(const poly multiplier, const poly t, const poly syzterm,
    340     const CReducersHash_test &syz_checker, const CReducersHash_test *m_div)
     332    const CReducersHash_test *syz_checker, const CReducersHash_test *m_div)
    341333{
    342334  const ring r = currRing;
     
    354346  if (syzterm != NULL)
    355347    c = p_GetComp(syzterm, r) - 1;
    356   const BOOLEAN to_check = !syz_checker.empty();
     348  const BOOLEAN to_check = !syz_checker->empty();
    357349  const poly q = p_New(r);
    358350  pNext(q) = NULL;
     
    380372      continue;
    381373    }
    382     if (to_check && IsDivisible(&syz_checker, q)) {
     374    if (to_check && IsDivisible(syz_checker, q)) {
    383375      continue;
    384376    }
     
    412404static inline poly ReduceTerm_test(poly multiplier, poly term4reduction,
    413405    poly syztermCheck, const ideal m_idTails_test,
    414     const std::vector<bool> &m_lcm, const CReducersHash_test *m_div)
     406    const std::vector<bool> &m_lcm, const CReducersHash_test *m_div,
     407    const CReducersHash_test *m_checker)
    415408{
    416409  const ring r = currRing;
     
    427420  poly b = leadmonom_test(s, r);
    428421  const int c = p_GetComp(s, r) - 1;
    429   const poly t = TraverseTail_test(b, c, m_idTails_test, m_lcm, m_div);
     422  const poly t
     423      = TraverseTail_test(b, c, m_idTails_test, m_lcm, m_div, m_checker);
    430424  pDelete(&b);
    431425  if( t != NULL )
     
    631625    const ideal m_idLeads_test, const ideal m_syzLeads_test)
    632626{
    633     redefine(&m_checker, m_syzLeads_test);
    634627#if CACHE
    635628    for (TCache_test::iterator it = m_cache_test.begin();
     
    669662        m_syzLeads_test->m[i]->next = NULL;
    670663    }
     664    CReducersHash_test m_checker;
     665    initialize(m_checker, m_syzLeads_test);
    671666    setGlobalVariables(res, index, m_idLeads_test, m_syzLeads_test);
    672667    poly p;
     
    675670        pDelete(&res[index]->m[j]->next);
    676671        p->next = NULL;
    677         res[index]->m[j]->next
    678             = TraverseNF_test(p, m_idLeads_test, m_idTails_test, m_lcm, &m_div);
    679     }
     672        res[index]->m[j]->next = TraverseNF_test(p, m_idLeads_test,
     673            m_idTails_test, m_lcm, &m_div, &m_checker);
     674    }
     675    deleteCRH(&m_checker);
    680676    deleteCRH(&m_div);
    681677    m_lcm.clear();
     
    744740    length = computeResolution(res, length, syzHead);
    745741    sortPolys(res, length);
    746 
    747     deleteCRH(&m_checker);
    748742#if CACHE
    749743    for (TCache_test::iterator it = m_cache_test.begin();
Note: See TracChangeset for help on using the changeset viewer.