Changeset 6a1cdff in git for kernel/GBEngine


Ignore:
Timestamp:
Nov 16, 2022, 5:20:01 PM (18 months ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'd08f5f0bb3329b8ca19f23b74cb1473686415c3a')
Children:
3c6f0ffaf164cb9431bba2f23a727bae0ba8ce1b
Parents:
47c5e69b0818e4915a26317e74b0ffe5b1b81ef8
Message:
simplify red for Z
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/GBEngine/kstd2.cc

    r47c5e6 r6a1cdff  
    160160#if defined(PDEBUG) || defined(PDIV_DEBUG)
    161161        if (p_LmShortDivisibleBy(T0p, sevT0, p, not_sev, r))
     162#else
     163        if (!(sevT0 & not_sev) && p_LmDivisibleBy(T0p, p, r))
     164#endif
    162165        {
    163166          if (n_QuotRem!=ndQuotRem) /*euclidean ring*/
     
    174177          }
    175178        }
     179    }
     180    else
     181    {
     182        const poly T0p  = strat->T[0].t_p;
     183        const ring r    = strat->tailRing;
     184        const poly p    = L->t_p;
     185        orest           = pGetCoeff(p);
     186#if defined(PDEBUG) || defined(PDIV_DEBUG)
     187        if (p_LmShortDivisibleBy(T0p, sevT0,
     188                    p, not_sev, r))
    176189#else
    177190        if (!(sevT0 & not_sev) && p_LmDivisibleBy(T0p, p, r))
     191#endif
    178192        {
    179193          if (n_QuotRem!=ndQuotRem) /*euclidean ring*/
     
    190204          }
    191205        }
    192 #endif
    193     }
    194     else
    195     {
    196         const poly T0p  = strat->T[0].t_p;
    197         const ring r    = strat->tailRing;
    198         const poly p    = L->t_p;
    199         orest           = pGetCoeff(p);
    200 #if defined(PDEBUG) || defined(PDIV_DEBUG)
    201         if (p_LmShortDivisibleBy(T0p, sevT0,
    202                     p, not_sev, r))
    203         {
    204           if (n_QuotRem!=ndQuotRem) /*euclidean ring*/
    205           {
    206             mult= n_QuotRem(pGetCoeff(p), pGetCoeff(T0p), &rest, r->cf);
    207             if (!n_IsZero(mult, r->cf) && n_Greater(n_EucNorm(orest, r->cf), n_EucNorm(rest, r->cf), r->cf))
    208             {
    209               n_Delete(&mult,r->cf);
    210               n_Delete(&rest,r->cf);
    211               return 0;
    212             }
    213             n_Delete(&mult,r->cf);
    214             n_Delete(&rest,r->cf);
    215           }
    216         }
    217 #else
    218         if (!(sevT0 & not_sev) && p_LmDivisibleBy(T0p, p, r))
    219         {
    220           if (n_QuotRem!=ndQuotRem) /*euclidean ring*/
    221           {
    222             mult= n_QuotRem(pGetCoeff(p), pGetCoeff(T0p), &rest, r->cf);
    223             if (!n_IsZero(mult, r->cf) && n_Greater(n_EucNorm(orest, r->cf), n_EucNorm(rest, r->cf), r->cf))
    224             {
    225               n_Delete(&mult,r->cf);
    226               n_Delete(&rest,r->cf);
    227               return 0;
    228             }
    229             n_Delete(&mult,r->cf);
    230             n_Delete(&rest,r->cf);
    231           }
    232         }
    233 #endif
    234206    }
    235207    return -1;
     
    258230#if defined(PDEBUG) || defined(PDIV_DEBUG)
    259231      if (p_LmShortDivisibleBy(T[j].p, sevT[j],p, not_sev, r))
     232#else
     233      if (!(sevT[j] & not_sev) && p_LmDivisibleBy(T[j].p, p, r))
     234#endif
    260235      {
    261236        mult= n_QuotRem(pGetCoeff(p), pGetCoeff(T[j].p), &rest, r->cf);
     
    266241        }
    267242      }
    268 #else
    269       if (!(sevT[j] & not_sev) && p_LmDivisibleBy(T[j].p, p, r))
    270       {
    271         mult = n_QuotRem(pGetCoeff(p), pGetCoeff(T[j].p), &rest, r->cf);
    272         if (!n_IsZero(mult, r->cf) && n_Greater(n_EucNorm(orest, r->cf), n_EucNorm(rest, r->cf), r->cf))
    273         {
    274           o = j;
    275           orest = rest;
    276         }
    277       }
    278 #endif
    279243      j++;
    280244    }
     
    291255      if (p_LmShortDivisibleBy(T[j].t_p, sevT[j],
    292256            p, not_sev, r))
     257#else
     258      if (!(sevT[j] & not_sev) && p_LmDivisibleBy(T[j].t_p, p, r))
     259#endif
    293260      {
    294261        mult = n_QuotRem(pGetCoeff(p), pGetCoeff(T[j].t_p), &rest, r->cf);
     
    299266        }
    300267      }
    301 #else
    302       if (!(sevT[j] & not_sev) && p_LmDivisibleBy(T[j].t_p, p, r))
    303       {
    304         mult = n_QuotRem(pGetCoeff(p), pGetCoeff(T[j].t_p), &rest, r->cf);
    305         if (!n_IsZero(mult, r->cf) && n_Greater(n_EucNorm(orest, r->cf), n_EucNorm(rest, r->cf), r->cf))
    306         {
    307           o = j;
    308           orest = rest;
    309         }
    310       }
    311 #endif
    312268      j++;
    313269    }
Note: See TracChangeset for help on using the changeset viewer.