Changeset f7feb7 in git


Ignore:
Timestamp:
Jul 8, 2009, 6:20:18 PM (14 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
Children:
e44367a0d9873cda8ae1ea9e24d543de7766e7aa
Parents:
14c744d89221a31cb0538277d70d647a91e52af7
Message:
*hannes: some overflow tests


git-svn-id: file:///usr/local/Singular/svn/trunk@11963 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/kstd2.cc

    r14c744 rf7feb7  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: kstd2.cc,v 1.94 2009-06-19 15:31:48 levandov Exp $ */
     4/* $Id: kstd2.cc,v 1.95 2009-07-08 16:20:18 Singular Exp $ */
    55/*
    66*  ABSTRACT -  Kernel: alg. of Buchberger
     
    153153
    154154#ifdef HAVE_RINGS
    155 NATNUMBER factorial(NATNUMBER arg)
     155static NATNUMBER factorial(NATNUMBER arg)
    156156{
    157157   NATNUMBER tmp = 1; arg++;
     
    359359      }
    360360    }
    361     else if ((TEST_OPT_PROT) && (strat->Ll < 0) && (d != reddeg))
    362     {
    363       Print(".%d",d);mflush();
    364       reddeg = d;
     361    else if (d != reddeg)
     362    {
     363      if (d>=strat->tailRing->bitmask)
     364      {
     365        WerrorS("OVERFLOW in redRing\n");
     366        return 1;
     367      }
     368      else if ((TEST_OPT_PROT) && (strat->Ll < 0))
     369      {
     370        Print(".%d",d);mflush();
     371        reddeg = d;
     372      }
    365373    }
    366374  }
     
    618626      }
    619627    }
    620     else if ((TEST_OPT_PROT) && (strat->Ll < 0) && (d != reddeg))
    621     {
    622       Print(".%d",d);mflush();
    623       reddeg = d;
     628    else if (d != reddeg)
     629    {
     630      if (d>=strat->tailRing->bitmask)
     631      {
     632        WerrorS("OVERFLOW in redLazy\n");
     633        return 1;
     634      }
     635      else if ((TEST_OPT_PROT) && (strat->Ll < 0))
     636      {
     637        Print(".%d",d);mflush();
     638        reddeg = d;
     639      }
    624640    }
    625641  }
     
    780796      }
    781797    }
    782     else if (TEST_OPT_PROT && (strat->Ll < 0) && (d > reddeg))
    783     {
    784       //h->wrp(); Print("<%d>\n",h->GetpLength());
    785       reddeg = d;
    786       Print(".%ld",d); mflush();
     798    else if (d > reddeg)
     799    {
     800      if (d>=strat->tailRing->bitmask)
     801      {
     802        WerrorS("OVERFLOW in redHoney\n");
     803        return 1;
     804      }
     805      else if (TEST_OPT_PROT && (strat->Ll < 0) )
     806      {
     807        //h->wrp(); Print("<%d>\n",h->GetpLength());
     808        reddeg = d;
     809        Print(".%ld",d); mflush();
     810      }
    787811    }
    788812  }
     
    10211045    else
    10221046    {
     1047      if (strat->P.ecart+strat->P.pFDeg()>=currRing->bitmask)
     1048      {
     1049        WerrorS("OVERFLOW");break;
     1050      }
    10231051      if (TEST_OPT_PROT)
    10241052        message((strat->honey ? strat->P.ecart : 0) + strat->P.pFDeg(),
     
    10271055      /* reduction of the element choosen from L */
    10281056      red_result = strat->red(&strat->P,strat);
     1057      if (errorreported)  break;
    10291058    }
    10301059
Note: See TracChangeset for help on using the changeset viewer.