Changeset d322f7 in git


Ignore:
Timestamp:
Oct 4, 2010, 11:31:51 AM (14 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', '38dfc5131670d387a89455159ed1e071997eec94')
Children:
9257fe4f6b84d0ceb446c0c736dc18646bb92432
Parents:
e0cb6c27360dbf0c972201dd6f5136ef5a791f4f
Message:
64bit stuff

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

Legend:

Unmodified
Added
Removed
  • Singular/misc_ip.cc

    re0cb6c rd322f7  
    110110}
    111111
    112 void setListEntry_ui(lists L, int index, long ui)
     112void setListEntry_ui(lists L, int index, unsigned long ui)
    113113{ /* assumes n > 0 */
    114114  /* try to fit nn into an int: */
    115   if (((ui<<3)>>3)==ui)
    116   {
    117     L->m[index].rtyp = INT_CMD; L->m[index].data = (void*)ui;
     115  int i=(int)ui;
     116  if ((((unsigned long)i)==ui) && (((i<<3)>>3)==i))
     117  {
     118    L->m[index].rtyp = INT_CMD; L->m[index].data = (void*)i;
    118119  }
    119120  else
    120121  {
    121     number nn = nlInit(ui,NULL);
     122    number nn = nlRInit(ui);
     123    mpz_set_ui(nn->z,ui);
    122124    L->m[index].rtyp = BIGINT_CMD; L->m[index].data = (void*)nn;
    123125  }
     
    197199  if (!nlIsZero(n))
    198200  {
    199     if (!nlGreaterZero(n)) 
     201    if (!nlGreaterZero(n))
    200202    {
    201203      positive=-1;
     
    219221    mpz_sqrt(sr, nn);
    220222    if ((mpz_cmp_ui(b, 0) == 0) || (mpz_cmp(pb, sr) > 0)) mpz_set(pb, sr);
    221     int limit=mpz_get_ui(pb);
     223    unsigned long limit=mpz_get_ui(pb);
    222224    if ((limit==0)||(mpz_cmp_ui(pb,limit)!=0)) limit=1<<31;
    223225    while (p_ui <=limit)
     
    230232        //mpz_sqrt(sr, nn);
    231233        //if ((mpz_cmp_ui(b, 0) == 0) || (mpz_cmp(pb, sr) > 0)) mpz_set(pb, sr);
    232         if (mpz_size1(nn)<=2) 
     234        if (mpz_size1(nn)<=2)
    233235        {
    234236          mpz_sqrt(sr, nn);
     
    236238          unsigned long l=mpz_get_ui(sr);
    237239          if (l<limit) limit=l;
    238           if (mpz_size1(nn)<=1)
    239           {
    240             unsigned long nn_ui=mpz_get_ui(nn);
    241             while ((p_ui <=limit)&&(nn_ui>1))
    242             {
     240          if (mpz_size1(nn)<=1)
     241          {
     242            unsigned long nn_ui=mpz_get_ui(nn);
     243            while ((p_ui <=limit)&&(nn_ui>1))
     244            {
    243245              divTimes_ui_ui(&nn_ui, p_ui, &tt);
    244246              if (tt > 0)
     
    246248                setListEntry_ui(primes, index, p_ui);
    247249                multiplicities[index++] = tt;
    248                 if (nn_ui>(limit/6)) limit=nn_ui/6;
     250                if (nn_ui>(limit/6)) limit=nn_ui/6;
    249251              }
    250252              p_ui +=add;
    251253              add += 2; if (add == 6) add = 2;
    252             }
    253             mpz_set_ui(nn,nn_ui);
    254             break;
    255           }
     254            }
     255            mpz_set_ui(nn,nn_ui);
     256            break;
     257          }
    256258        }
    257259      }
Note: See TracChangeset for help on using the changeset viewer.