Changeset 921913 in git for libpolys


Ignore:
Timestamp:
Jun 23, 2021, 9:48:32 AM (3 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', '7e41ef9499d2014a20b2ab8b603aa2c6cce053c8')
Children:
27077291dbf9510b6d5b705f5981a3f8fdea9c61
Parents:
caa9c4e4186a7cea39e722bb522108e1f86c6009
Message:
fix: convert longR -> Z, bigint for long values
Location:
libpolys/coeffs
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • libpolys/coeffs/longrat.cc

    rcaa9c4 r921913  
    523523    return nlInit(l,dst);
    524524  }
    525   return nlInit(0,dst);
     525  char *out=floatToStr(*(gmp_float*)from, src->float_len);
     526  char *p=strchr(out,'.');
     527  *p='\0';
     528  number res;
     529  res = ALLOC_RNUMBER();
     530#if defined(LDEBUG)
     531  res->debug=123456;
     532#endif
     533  res->s=3;
     534  mpz_init(res->z);
     535  if (out[0]=='-')
     536  {
     537    mpz_set_str(res->z,out+1,10);
     538    res=nlNeg(res,dst);
     539  }
     540  else
     541  {
     542    mpz_set_str(res->z,out,10);
     543  }
     544  omFree( (void *)out );
     545  return res;
    526546}
    527547
  • libpolys/coeffs/rintegers2.cc

    rcaa9c4 r921913  
    304304}
    305305
     306/*
    306307static number nrzQuotRem (number a, number b, number * r, const coeffs )
    307308{
     
    322323  return (number) qq;
    323324}
     325*/
    324326
    325327static number nrzIntMod (number a,number b, const coeffs)
     
    382384    return nrzInit(l,dst);
    383385  }
    384   return nrzInit(0,dst);
     386  char *out=floatToStr(*(gmp_float*)from, src->float_len);
     387  char *p=strchr(out,'.');
     388  *p='\0';
     389  mpz_ptr erg = (mpz_ptr) omAllocBin(gmp_nrz_bin);
     390  mpz_init(erg);
     391  if (out[0]=='-')
     392  {
     393    mpz_set_str(erg,out+1,10);
     394    mpz_mul_si(erg, erg, -1);
     395  }
     396  else
     397  {
     398    mpz_set_str(erg,out,10);
     399  }
     400  omFree( (void *)out );
     401  return (number) erg;
    385402}
    386403
Note: See TracChangeset for help on using the changeset viewer.