Changeset 1e579c6 in git for kernel/polys.cc


Ignore:
Timestamp:
Jun 20, 2007, 11:39:25 AM (16 years ago)
Author:
Oliver Wienand <wienand@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a800fe4b3e9d37a38c5a10cc0ae9dfa0c15a4ee6')
Children:
07e8ae3b1877436cb95506c90d799438d558c703
Parents:
f7aaec31bd73e9e5b3b2bd84ee5ff4fab2de4691
Message:
kutil.cc:
* use nExtGcd, nIsUnit
* extended spolys only for non-domains

numbers.cc, numbers.h, structs.h:
* new Functions: nIsUnit, nGetUnit, nExtGcd
* new Field: the Integers

polys.cc, polys.h:
* nGetUnit hack removed
* minor memory glitch

polys1.cc:
* no pContent for Integers

ring.h:
new rField methos for Integers and p^n

rintegers.*:
implementation of the whole numbers using gmp

rmodulo*:
added funcs: nIsUnit, nGetUnit, nExtGcd


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

Legend:

Unmodified
Added
Removed
  • kernel/polys.cc

    rf7aaec3 r1e579c6  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: polys.cc,v 1.19 2007-05-23 07:47:30 wienand Exp $ */
     4/* $Id: polys.cc,v 1.20 2007-06-20 09:39:24 wienand Exp $ */
    55
    66/*
     
    689689}
    690690
    691 #ifdef HAVE_RINGS  //HACK TODO Oliver
    692 number nGetUnit(number k) {
    693   number unit = nIntDiv(k, nGcd(k, 0, currRing));
    694   number gcd = nGcd(unit, 0, currRing);
    695   if (!nIsOne(gcd))
    696   {
    697     number tmp = nMult(unit, unit);
    698     number gcd_new = nGcd(tmp, 0, currRing);
    699     while (gcd_new != gcd)
    700     {
    701       gcd = gcd_new;
    702       tmp = nMult(tmp, unit);
    703       gcd_new = nGcd(tmp, 0, currRing);
    704     }
    705     unit = nAdd(unit, nIntDiv(0, gcd_new));
    706   }
    707 //  Print("k = %d ; unit = %d ; gcd = %d", k, unit, gcd);
    708   return unit;
    709 }
    710 #endif
    711 
    712691/*2
    713692*divides p1 by its leading coefficient
     
    720699  if (rField_is_Ring(currRing))
    721700  {
    722     if (p1!=NULL)
     701    if ((p1!=NULL) && rField_has_Units(currRing))
    723702    {
    724703      k = nGetUnit(pGetCoeff(p1));
     
    726705      {
    727706        c = nDiv(pGetCoeff(p1), k);
     707        nDelete(pGetCoeff(p1));
    728708        pSetCoeff0(p1, c);
    729709        h = pNext(p1);
     
    731711        {
    732712          c = nDiv(pGetCoeff(h), k);
    733           pSetCoeff(h, c);
     713          nDelete(pGetCoeff(h));
     714          pSetCoeff0(h, c);
    734715          pIter(h);
    735716        }
    736         nDelete(&k);
    737       }
    738      return;
    739     }
     717      }
     718      nDelete(&k);
     719    }
     720    return;
    740721  }
    741722  else
Note: See TracChangeset for help on using the changeset viewer.