Changeset 08b6c4 in git


Ignore:
Timestamp:
Dec 24, 2019, 3:00:50 PM (4 years ago)
Author:
Karim Abou Zeid <karim23697@…>
Branches:
(u'spielwiese', '2a584933abf2a2d3082034c7586d38bb6de1a30a')
Children:
b1bc248d073584573806dd68ddc187158bf5c279
Parents:
096b8ab36ab29f6898e7739f784f9219646ca413
Message:
Fix lpZ for qring
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/GBEngine/kutil.cc

    r096b8ab r08b6c4  
    1276712767  if (rField_is_Ring(currRing))
    1276812768  {
    12769     assume(q_shift <= p_lastVblock);
     12769    assume(q_shift <= p_lastVblock); // we allow the special case where there is no overlap
    1277012770    enterOneStrongPolyAndEnterOnePairRingShift(q, p, ecartp, p_isFromQ, strat, -1, ecartq, q_isFromQ, q_shift, -1);
    1277112771  }
     
    1277312773#endif
    1277412774  {
    12775     int maxNeededShift = p_lastVblock - 1;
    12776     assume(q_shift <= maxNeededShift);
     12775    assume(q_shift <= p_lastVblock - 1); // there should be an overlap
    1277712776    enterOnePairShift(q, p, ecartp, p_isFromQ, strat, -1, ecartq, q_isFromQ, q_shift, -1);
    1277812777  }
     
    1319813197              {
    1319913198                poly s = strat->S[j];
    13200                 enterOnePairWithoutShifts(j, hh, s, ecart, isFromQ, strat, atR, pmLastVblock(s), i);
     13199                int s_lastVblock = pmLastVblock(s);
     13200                if (i < s_lastVblock)
     13201                  enterOnePairWithoutShifts(j, hh, s, ecart, isFromQ, strat, atR, s_lastVblock, i);
     13202#ifdef HAVE_RINGS
     13203                else if (rField_is_Ring(currRing))
     13204                {
     13205                  assume(i >= s_lastVblock); // this is always the case, but just to be very sure
     13206                  ideal fillers = id_MaxIdeal(i - s_lastVblock, currRing);
     13207                  for (int k = 0; k < IDELEMS(fillers); k++)
     13208                  {
     13209                    poly hhh = pLPCopyAndShiftLM(pp_mm_Mult(h, fillers->m[k], currRing), s_lastVblock);
     13210                    enterOnePairWithoutShifts(j, hhh, s, ecart, isFromQ, strat, atR, s_lastVblock, s_lastVblock);
     13211                  }
     13212                  idDelete(&fillers);
     13213                }
     13214#endif
    1320113215              }
    1320213216            }
     
    1321013224        for (j=0; j<=k; j++) {
    1321113225          poly s = strat->S[j];
    13212           // TODO: cache lastVblock of s[1..k] for later use
    1321313226          enterOnePairWithShifts(j, s, h, ecart, isFromQ, strat, atR, h_lastVblock, pmLastVblock(s));
    1321413227        }
     
    1325713270    else
    1325813271    {
     13272      assume(isFromQ == 0); // an element from Q should always has 0 component
    1325913273      new_pair=TRUE;
    1326013274      if (strat->rightGB)
     
    1326513279              || (pGetComp(strat->S[j])==0))
    1326613280          {
    13267             assume(isFromQ == 0); // this case is not handeled here and should also never happen
    1326813281            poly s = strat->S[j];
    1326913282            if (strat->fromQ != NULL && strat->fromQ[j])
Note: See TracChangeset for help on using the changeset viewer.