$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Liu Jin (cpp_at_[hidden])
Date: 2005-05-30 01:49:11
>>>>> "Paul" == Paul A Bristow <pbristow_at_[hidden]> writes:
    > | -----Original Message----- | From:
    > boost-bounces_at_[hidden] |
    > [mailto:boost-bounces_at_[hidden]] On Behalf Of Paul A
    > Bristow | Sent: 17 May 2005 15:23 | To: boost_at_[hidden] |
    > Subject: RE: [boost] Re: Math constants
    > I attach a short file with some samples of math constants
    > together with their 'interval' upper and lower values, which
    > (mostly) when compiled will be only a single least significant
    > bit different (or the same of course).
    > The upper and lower values contain a lot of decimal digits
    > because they are 'exactly representable' for the floating point
    > layout given.
    > C++ Exactly representable values do not involve any rounding on
    > input (to the appropriate floating point format).
    > Of course this file does not compile - many duplicates - but
    > when the appropriate pair of upper and lower are chosen, they
    > should do.
    > For the most common case of an IEEE double,
    > // C++ Exactly representable interval values of pi for 2 radix &
    > 53 significand bits. static const double pi_l =
    > 3.141592653589793115997963468544185161590576171875; // lower
    > static const double pi =
    > 3.1415926535897932384626433832795028841971694007530293; //
    > starting with this value. static const double pi_u =
    > 3.141592653589793560087173318606801331043243408203125; // upper
    > When used to initialise a double,
    > v_d_l = 3.1415926535897931 == 0x400921fb54442d18 // lower v_d =
    > 3.1415926535897931 == 0x400921fb54442d18 // 'middle' == lower
    > v_d_u = 3.1415926535897936 == 0x400921fb54442d19 // upper
    > The number of possibly significant digits is given by
    > std::numeric_limits<double::digits() * 3010 /10000 and is 17
    > (std::numeric_limits<double::digits10() in contrast is the
    > number of __guaranteed__ accurate decimal digits and is 15).
    > Questions:
    > 1 Are there many (any?) potential users for interval arithmetic
    > computing (we have a Boost library).
    > 2 Would they find the intervals of the constants updated in the
    > Sandbox useful?
    > 3 Can any MACRO whizz-kids suggest the _best_ way to provide
    > only pairs (or trios) for the appropriate floating point format?
    > 4 I can only calculate for radix == 2 (and can't be bothered to
    > work out for radix 8, 10, 16, 42...?). If anyone wants these and
    > can tell me how, please do so.
    > 5 So one is really only chosing float, double, long double, or
    > some UDT like NTL arbitrary precision quads on the basis of the
    > number of significand bits, usually 24, 53, 64, 105, 106, 113,
    > 127.
    > For example, to produce the above definitions for 53 significand
    > IEEE 754 X86 double.
    > Thanks.
    > Paul Paul A Bristow Prizet Farmhouse, Kendal, Cumbria UK LA8 8AB
    > +44 1539 561830 +44 7714 330204 mailto: pbristow_at_[hidden]
    > _______________________________________________
    > Unsubscribe & other changes: http://listarchives.boost.org/mailman/listinfo.cgi/boost