Changeset bad9f3 in git


Ignore:
Timestamp:
Dec 20, 2000, 11:54:25 AM (23 years ago)
Author:
Wilfred Pohl <pohl@…>
Branches:
(u'spielwiese', '5b153614cbc72bfa198d75b1e9e33dab2645d9fe')
Children:
24d587c69f03ebf0b0771f514b3c9bc6364a93ed
Parents:
40c7ec80c05f1294b97ec9974f0c5c5a0a35f186
Message:
change setGMPFloatDigits


git-svn-id: file:///usr/local/Singular/svn/trunk@4959 2c84dea3-7e68-4137-9b89-c4e89433aadc
Location:
Singular
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • Singular/gnumpfl.h

    r40c7ec8 rbad9f3  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: gnumpfl.h,v 1.7 2000-12-15 18:49:29 Singular Exp $ */
     6/* $Id: gnumpfl.h,v 1.8 2000-12-20 10:54:24 pohl Exp $ */
    77/*
    88* ABSTRACT: computations with GMP floating-point numbers
     
    4040nMapFunc  ngfSetMap(ring src, ring dst);
    4141
    42 void setGMPFloatDigits( size_t digits );
     42void setGMPFloatDigits( size_t digits, size_t rest );
    4343#endif
    4444
  • Singular/mpr_complex.cc

    r40c7ec8 rbad9f3  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: mpr_complex.cc,v 1.29 2000-12-18 15:44:41 obachman Exp $ */
     4/* $Id: mpr_complex.cc,v 1.30 2000-12-20 10:54:24 pohl Exp $ */
    55
    66/*
     
    4949 *  digits - the number of output digits (basis 10)
    5050 *  the size of mantissa consists of two parts:
    51  *    the "output" part and the "zero" part.
     51 *    the "output" part a and the "rest" part b.
    5252 *  According to the GMP-precision digits is
    5353 *  recomputed to bits (basis 2).
     
    5555 *    | a - b | < | a | * 0.1^digits .
    5656 *  In this case we have a - b = 0 .
     57 *  The epsilon e is e=0.1^(digits+rest) with
     58 *  1+e != 1, but 1+0.1*e = 1.
    5759 */
    58 void setGMPFloatDigits( size_t digits )
     60void setGMPFloatDigits( size_t digits, size_t rest )
    5961{
    6062  size_t bits = 1 + (size_t) ((float)digits * 3.5);
    61   size_t db = bits+bits;
    62   bits= bits>64?bits:64;
     63  size_t rb = 1 + (size_t) ((float)rest * 3.5);
     64  size_t db = bits+rb;
    6365  gmp_output_digits= digits;
    6466  mpf_set_default_prec( db );
  • Singular/mpr_complex.h

    r40c7ec8 rbad9f3  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: mpr_complex.h,v 1.15 2000-06-30 11:25:38 pohl Exp $ */
     6/* $Id: mpr_complex.h,v 1.16 2000-12-20 10:54:24 pohl Exp $ */
    77
    88/*
     
    2626#define CTOF 4
    2727
    28 void setGMPFloatDigits( size_t digits );
     28void setGMPFloatDigits( size_t digits, size_t rest );
    2929size_t getGMPFloatDigits();
    3030
  • Singular/mpr_inout.cc

    r40c7ec8 rbad9f3  
    33****************************************/
    44
    5 /* $Id: mpr_inout.cc,v 1.11 2000-10-05 15:16:58 Singular Exp $ */
     5/* $Id: mpr_inout.cc,v 1.12 2000-12-20 10:54:25 pohl Exp $ */
    66
    77/*
     
    193193  else if ( !(rField_is_R()||rField_is_long_R()||rField_is_long_C()) )
    194194  {
    195     setGMPFloatDigits( (unsigned long int)v->Data() );
     195    unsigned long int ii=(unsigned long int)v->Data();
     196    setGMPFloatDigits( ii, ii );
    196197  }
    197198  v= v->next;
     
    364365  if ( !(rField_is_R()||rField_is_long_R()||rField_is_long_C()) )
    365366  {
    366     setGMPFloatDigits( (unsigned long int)arg2->Data() );
     367    unsigned long int ii = (unsigned long int)arg2->Data();
     368    setGMPFloatDigits( ii, ii );
    367369  }
    368370
  • Singular/numbers.cc

    r40c7ec8 rbad9f3  
    22*  Computer Algebra System SINGULAR      *
    33*****************************************/
    4 /* $Id: numbers.cc,v 1.34 2000-12-19 18:31:44 obachman Exp $ */
     4/* $Id: numbers.cc,v 1.35 2000-12-20 10:54:25 pohl Exp $ */
    55
    66/*
     
    130130  else if (rField_is_long_R(r))
    131131  {
    132     setGMPFloatDigits(r->ch_flags);
     132    setGMPFloatDigits(r->ch_flags,r->ch_flags);
    133133  }
    134134  /* -------------- long C -----------------------*/
    135135  else if (rField_is_long_C(r))
    136136  {
    137     setGMPFloatDigits(r->ch_flags);
     137    setGMPFloatDigits(r->ch_flags,r->ch_flags);
    138138  }
    139139#ifdef TEST
Note: See TracChangeset for help on using the changeset viewer.