Changeset 106406 in git


Ignore:
Timestamp:
Jul 16, 2009, 6:01:26 PM (14 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'c18334b998a8adbf0013b8e1ce0824774019443e')
Children:
9446f84181f539db0f2689bb27e177084073a62f
Parents:
40f856763215f79e7dbf5992da04ba55904357b1
Message:
*hannes: nlShort3 simplified


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

Legend:

Unmodified
Added
Removed
  • kernel/longrat.cc

    r40f8567 r106406  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: longrat.cc,v 1.41 2009-06-04 08:32:59 Singular Exp $ */
     4/* $Id: longrat.cc,v 1.42 2009-07-16 16:01:26 Singular Exp $ */
    55/*
    66* ABSTRACT: computation with long rational numbers (Hubert Grassmann)
     
    7676#define MPZ_EXACTDIV(A,B,C) mpz_divexact((A),(B),(C))
    7777
     78void    _nlDelete_NoImm(number *a);
    7879
    7980/***************************************************************
     
    11601161  if (mpz_cmp_ui(&x->z,(long)0)==0)
    11611162  {
    1162     nlDelete(&x,currRing);
     1163    _nlDelete_NoImm(&x);
    11631164    return INT_TO_SR(0);
    11641165  }
     
    11671168    if (mpz_cmp(&x->z,&x->n)==0)
    11681169    {
    1169       nlDelete(&x,currRing);
     1170      _nlDelete_NoImm(&x);
    11701171      return INT_TO_SR(1);
    11711172    }
     
    11761177{
    11771178  assume(x->s==3);
    1178   if (mpz_cmp_ui(&x->z,(long)0)==0)
    1179   {
    1180     nlDelete(&x,currRing);
    1181     return INT_TO_SR(0);
    1182   }
    1183   if (mpz_size1(&x->z)<=MP_SMALL)
    1184   {
    1185     if (x->s==3)
    1186     {
    1187       int ui=(int)mpz_get_si(&x->z);
    1188       if ((((ui<<3)>>3)==ui)
    1189       && (mpz_cmp_si(&x->z,(long)ui)==0))
    1190       {
    1191         mpz_clear(&x->z);
    1192         omFreeBin((ADDRESS)x, rnumber_bin);
    1193         return INT_TO_SR(ui);
    1194       }
     1179  if ((mpz_cmp_ui(&x->z,(long)0)==0)
     1180  || (mpz_size1(&x->z)<=MP_SMALL))
     1181  {
     1182    int ui=(int)mpz_get_si(&x->z);
     1183    if ((((ui<<3)>>3)==ui)
     1184    && (mpz_cmp_si(&x->z,(long)ui)==0))
     1185    {
     1186      mpz_clear(&x->z);
     1187      omFreeBin((ADDRESS)x, rnumber_bin);
     1188      return INT_TO_SR(ui);
    11951189    }
    11961190  }
     
    22062200BOOLEAN _nlEqual_aNoImm_OR_bNoImm(number a, number b);
    22072201number  _nlCopy_NoImm(number a);
    2208 void    _nlDelete_NoImm(number *a);
    22092202number  _nlNeg_NoImm(number a);
    22102203number  _nlAdd_aNoImm_OR_bNoImm(number a, number b);
Note: See TracChangeset for help on using the changeset viewer.