Changeset 12e275 in git


Ignore:
Timestamp:
Dec 4, 2014, 5:51:33 PM (9 years ago)
Author:
Oleksandr Motsak <motsak@…>
Branches:
(u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
Children:
f19aa6812e6421a0bbd161f43b974557d7f6b874
Parents:
fe6b623ec279088e48111ca37e0592c7d7a54822
git-author:
Oleksandr Motsak <motsak@mathematik.uni-kl.de>2014-12-04 17:51:33+01:00
git-committer:
Oleksandr Motsak <motsak@mathematik.uni-kl.de>2014-12-15 18:49:40+01:00
Message:
Mark deprecated BIGINT handling + related bugs / side effects

FIXMEs: nlGMP -> n_MPZ. Check for side effects and nlMapGMP
Fix: bug in BIGINT deletion
Fix: a possible bug due to sideeffect!?
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • Singular/ipshell.cc

    rfe6b62 r12e275  
    2121
    2222#include <coeffs/rmodulon.h>
     23#include <coeffs/longrat.h>
    2324
    2425#include <polys/monomials/ring.h>
     
    13071308         break;
    13081309      case BIGINT_CMD:
    1309          n_Delete(&IDNUMBER(pp),currRing->cf);
     1310         n_Delete(&IDNUMBER(pp),coeffs_BIGINT);
    13101311         break;
    13111312      case MAP_CMD:
     
    18061807  LL->Init(2);
    18071808  LL->m[0].rtyp=BIGINT_CMD;
    1808   LL->m[0].data=nlMapGMP((number) R->cf->modBase, R->cf, R->cf);
     1809  LL->m[0].data=nlMapGMP((number) R->cf->modBase, R->cf, R->cf); // TODO: what is this?? // extern number nlMapGMP(number from, const coeffs src, const coeffs dst); // FIXME: replace with n_InitMPZ(R->cf->modBase, coeffs_BIGINT); ?
    18091810  LL->m[1].rtyp=INT_CMD;
    18101811  LL->m[1].data=(void *) R->cf->modExponent;
     
    20902091    if ((LL->nr >= 0) && LL->m[0].rtyp == BIGINT_CMD)
    20912092    {
    2092       number tmp= (number) LL->m[0].data;
    2093       n_MPZ (modBase, tmp, coeffs_BIGINT);
     2093      number tmp= (number) LL->m[0].data; // .CopyD()? see below
     2094      n_MPZ (modBase, tmp, coeffs_BIGINT); // FIXME: deletes tmp: previous CopyD() should NOT be necessary!
    20942095    }
    20952096    else if (LL->nr >= 0 && LL->m[0].rtyp == INT_CMD)
     
    52665267  else if ((pn->name != NULL) && (strcmp(pn->name, "integer") == 0))
    52675268  {
     5269    // TODO: change to use coeffs_BIGINT!?
    52685270    modBase = (mpz_ptr) omAlloc(sizeof(mpz_t));
    52695271    mpz_init_set_si(modBase, 0);
     
    52875289      else if (pn->next->Typ()==BIGINT_CMD)
    52885290      {
    5289         number p=(number)pn->next->CopyD();
    5290         nlGMP(p,(number)modBase,coeffs_BIGINT);
    5291         nlDelete(&p,coeffs_BIGINT);
     5291        number p=(number)pn->next->CopyD(); // FIXME: why CopyD() here if nlGMP should not overtake p!?
     5292        nlGMP(p,(number)modBase,coeffs_BIGINT); // TODO? // extern void   nlGMP(number &i, number n, const coeffs r); // FIXME: n_MPZ( modBase, p, coeffs_BIGINT); ?
     5293        n_Delete(&p,coeffs_BIGINT);
    52925294      }
    52935295    }
  • Singular/number2.cc

    rfe6b62 r12e275  
    6262  {
    6363    ZnmInfo info;
    64     number modBase= (number) omAlloc(sizeof(mpz_t));
    65     nlGMP(i2,modBase,coeffs_BIGINT);
     64    number modBase= (number) omAlloc(sizeof(mpz_t));   
     65    nlGMP(i2,modBase,coeffs_BIGINT); // FIXME? TODO? // extern void   nlGMP(number &i, number n, const coeffs r); // to be replaced with n_MPZ(modBase,i2,coeffs_BIGINT); // ?
    6666    info.base= (mpz_ptr)modBase;
    6767    info.exp= 1;
  • libpolys/coeffs/rintegers.cc

    rfe6b62 r12e275  
    2222#include "rintegers.h"
    2323#include "rmodulon.h"
     24#include "longrat.h"
    2425
    2526#include <string.h>
     
    330331  mpz_ptr erg = (mpz_ptr) omAllocBin(gmp_nrz_bin);
    331332  mpz_init(erg);
    332   nlGMP(from, (number) erg, src);
     333  nlGMP(from, (number) erg, src); // FIXME? TODO? // extern void   nlGMP(number &i, number n, const coeffs r); // to be replaced with n_MPZ(erg, from, src); // ?
    333334  return (number) erg;
    334335}
  • libpolys/coeffs/rmodulo2m.cc

    rfe6b62 r12e275  
    715715  mpz_init_set_ui(k, dst->mod2mMask);
    716716
    717   nlGMP(from, (number)erg, src);
     717  nlGMP(from, (number)erg, src); // FIXME? TODO? // extern void   nlGMP(number &i, number n, const coeffs r); // to be replaced with n_MPZ(erg, from, src); // ?
    718718  mpz_and(erg, erg, k);
    719719  number res = (number)mpz_get_ui(erg);
  • libpolys/coeffs/rmodulon.cc

    rfe6b62 r12e275  
    6060nMapFunc nrnSetMap     (const coeffs src, const coeffs dst);
    6161#if SI_INTEGER_VARIANT==2
    62 extern void    nrzWrite       (number &a, const coeffs r); // FIXME
     62// FIXME? TODO? // extern void    nrzWrite       (number &a, const coeffs r); // FIXME
    6363# define  nrnWrite      nrzWrite
    6464#else
     
    818818{
    819819  mpz_ptr erg = (mpz_ptr)omAllocBin(gmp_nrz_bin);
    820   mpz_init(erg);
    821   nlGMP(from, (number)erg, src);
     820  mpz_init(erg); 
     821  nlGMP(from, (number)erg, src); // FIXME? TODO? // extern void   nlGMP(number &i, number n, const coeffs r); // to be replaced with n_MPZ(erg, from, src); // ?
    822822  mpz_mod(erg, erg, dst->modNumber);
    823823  return (number)erg;
Note: See TracChangeset for help on using the changeset viewer.