Changeset 5919a7 in git


Ignore:
Timestamp:
Aug 23, 2016, 4:24:56 PM (7 years ago)
Author:
Andreas Steenpass <steenpass@…>
Branches:
(u'spielwiese', '828514cf6e480e4bafc26df99217bf2a1ed1ef45')
Children:
4c6e9d4ea46ef519f4c5e60541f5dbd83e8cc656
Parents:
74eafed4a90b880a02beba6665b920093bec6aa2
git-author:
Andreas Steenpass <steenpass@mathematik.uni-kl.de>2016-08-23 16:24:56+02:00
git-committer:
Andreas Steenpass <steenpass@mathematik.uni-kl.de>2017-12-15 12:17:07+01:00
Message:
chg: merge TraverseTail(poly, poly) into ComputeImage()
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/GBEngine/syz4.cc

    r74eafe r5919a7  
    200200}
    201201
    202 static poly ComputeImage_test(poly multiplier, const int tail,
    203     const ideal m_idTails_test, const std::vector<bool> &m_lcm,
    204     const CReducersHash_test *m_div, const CReducersHash_test *m_checker)
    205 {
    206   const poly t = m_idTails_test->m[tail];
    207   if(t != NULL)
    208   {
    209     const poly p = TraverseTail_test(multiplier, t, m_idTails_test, m_lcm,
    210         m_div, m_checker);
    211     return p;
    212   }
    213   return NULL;
    214 }
    215 
    216202#define BUCKETS 1
    217203/* 0: use original code (not implemented)
     
    220206 */
    221207
    222 static poly TraverseTail_test(poly multiplier, poly tail,
     208static poly ComputeImage_test(poly multiplier, const int t,
    223209    const ideal m_idTails_test, const std::vector<bool> &m_lcm,
    224210    const CReducersHash_test *m_div, const CReducersHash_test *m_checker)
    225211{
    226   const ring r = currRing;
    227   if( !CLCM_test_Check(m_lcm, multiplier) )
    228   {
    229     return NULL;
    230   }
     212  const poly tail = m_idTails_test->m[t];
     213  if(tail != NULL)
     214  {
     215    const ring r = currRing;
     216    if( !CLCM_test_Check(m_lcm, multiplier) )
     217    {
     218      return NULL;
     219    }
    231220#if BUCKETS == 0
    232   SBucketWrapper sum(r, m_sum_bucket_factory);
     221    SBucketWrapper sum(r, m_sum_bucket_factory);
    233222#elif BUCKETS == 1
    234   sBucket_pt sum = sBucketCreate(currRing);
     223    sBucket_pt sum = sBucketCreate(currRing);
    235224#else   // BUCKETS == 2
    236   poly s = NULL;
     225    poly s = NULL;
    237226#endif   // BUCKETS
    238   for(poly p = tail; p != NULL; p = pNext(p))   // iterate over the tail
    239   {
    240     const poly rt = ReduceTerm_test(multiplier, p, NULL, m_idTails_test, m_lcm,
    241         m_div, m_checker);
     227    for(poly p = tail; p != NULL; p = pNext(p))   // iterate over the tail
     228    {
     229      const poly rt = ReduceTerm_test(multiplier, p, NULL, m_idTails_test,
     230          m_lcm, m_div, m_checker);
    242231#if BUCKETS == 0
    243     sum.Add(rt);
     232      sum.Add(rt);
    244233#elif BUCKETS == 1
    245     sBucket_Add_p(sum, rt, pLength(rt));
     234      sBucket_Add_p(sum, rt, pLength(rt));
    246235#else   // BUCKETS == 2
    247     s = p_Add_q(s, rt, r);
     236      s = p_Add_q(s, rt, r);
    248237#endif   // BUCKETS
    249   }
     238    }
    250239#if BUCKETS == 0
    251   const poly s = sum.ClearAdd();
     240    const poly s = sum.ClearAdd();
    252241#elif BUCKETS == 1
    253   poly s;
    254   int l;
    255   sBucketClearAdd(sum, &s, &l);
    256   sBucketDestroy(&sum);
     242    poly s;
     243    int l;
     244    sBucketClearAdd(sum, &s, &l);
     245    sBucketDestroy(&sum);
    257246#else   // BUCKETS == 2
    258   // nothing to do
     247    // nothing to do
    259248#endif   // BUCKETS
    260   return s;
     249    return s;
     250  }
     251  return NULL;
    261252}
    262253
Note: See TracChangeset for help on using the changeset viewer.