Post Reply 
A quick precision test
06-04-2014, 10:09 PM
Post: #38
RE: A quick precision test
(06-04-2014 02:17 PM)Claudio L. Wrote:  The power function is guaranteed to give you an accurate result with 34 good digits, for any 2 parameters (in this case, your guess that it's less precise is incorrect).

I very very much doubt this. Perhaps results with one ULP error but even then I doubt it is that good. The power function is a very difficult one to get right. The GNU C library implementation for 64 bit doubles, in bad cases, falls back to multiple precision calculations carrying over 1600 guard bits. I expect someone rather clever spent a lot of time and effort determining that number as an upper bound to guarantee correctness for the 53 mantissa bits in the result.


Quote:I don't know how decNumber does it in particular, but in general powers with small integer exponents are handled by a sequence of multiplications, while powers of real numbers or large numbers are usually done through logarithms:

Code:
x^a = exp( a * ln(x) )

Which is usually very accurate, as ln() and exp() are both guaranteed to give you 34+GUARD good digits on any number you throw at them.

Two points here:

  1. Expressing power as x^a = exp( a * ln(x) ) is prone to digit loss. Don't expect an accurate result unless you have a lot of extra digits. See the 1600 above Smile
  2. The decNumber versions I've looked at do not guarantee ln() and exp() are correctly rounded, the source just claims close but usually within one ULP.


A good rule of thumb to follow is to assume correct rounding for the four arithmetic operations and square root -- these are mandated by the IEEE floating point standards these days. Everything else is close.

- Pauli
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
A quick precision test - pito - 06-02-2014, 10:37 PM
RE: A quick precison test - Paul Dale - 06-02-2014, 11:04 PM
RE: A quick precison test - pito - 06-03-2014, 12:07 AM
RE: A quick precison test - Paul Dale - 06-03-2014, 12:13 AM
RE: A quick precison test - pito - 06-03-2014, 12:27 AM
RE: A quick precison test - Paul Dale - 06-03-2014, 12:36 AM
RE: A quick precision test - Claudio L. - 06-04-2014, 01:25 PM
RE: A quick precision test - walter b - 06-04-2014, 01:33 PM
RE: A quick precision test - Claudio L. - 06-04-2014, 01:42 PM
RE: A quick precision test - Paul Dale - 06-04-2014, 09:47 PM
RE: A quick precison test - walter b - 06-03-2014, 11:24 AM
RE: A quick precision test - Dieter - 06-04-2014, 01:08 PM
RE: A quick precision test - walter b - 06-04-2014, 01:23 PM
RE: A quick precison test - HP67 - 06-03-2014, 09:06 AM
RE: A quick precision test - everettr - 06-03-2014, 02:11 PM
RE: A quick precison test - pito - 06-03-2014, 07:23 AM
RE: A quick precison test - HP67 - 06-03-2014, 11:50 AM
RE: A quick precison test - Paul Dale - 06-03-2014, 12:25 PM
RE: A quick precision test - walter b - 06-03-2014, 01:52 PM
RE: A quick precision test - Paul Dale - 06-03-2014, 10:10 PM
RE: A quick precison test - HP67 - 06-03-2014, 12:41 PM
RE: A quick precision test - HP67 - 06-03-2014, 01:01 PM
RE: A quick precision test - walter b - 06-03-2014, 01:56 PM
RE: A quick precision test - pito - 06-04-2014, 01:38 PM
RE: A quick precision test - Claudio L. - 06-04-2014, 02:17 PM
RE: A quick precision test - Paul Dale - 06-04-2014 10:09 PM
RE: A quick precision test - Claudio L. - 06-05-2014, 01:18 AM
RE: A quick precision test - Paul Dale - 06-05-2014, 02:00 AM
RE: A quick precision test - Claudio L. - 06-05-2014, 11:03 AM
RE: A quick precision test - Dieter - 06-05-2014, 11:23 AM
RE: A quick precision test - Paul Dale - 06-05-2014, 12:06 PM
RE: A quick precision test - Claudio L. - 06-05-2014, 09:08 PM
RE: A quick precision test - Paul Dale - 06-05-2014, 10:09 PM
RE: A quick precision test - Claudio L. - 06-06-2014, 12:57 AM
RE: A quick precision test - Claudio L. - 06-06-2014, 01:15 AM
RE: A quick precision test - Paul Dale - 06-06-2014, 01:35 AM
RE: A quick precision test - pito - 06-06-2014, 11:16 AM
RE: A quick precision test - Claudio L. - 06-06-2014, 12:04 PM
RE: A quick precision test - Paul Dale - 06-06-2014, 10:55 PM
RE: A quick precision test - pito - 06-07-2014, 11:56 AM
RE: A quick precision test - Paul Dale - 06-07-2014, 12:20 PM
RE: A quick precision test - pito - 06-07-2014, 04:44 PM
RE: A quick precision test - walter b - 06-08-2014, 05:28 PM
RE: A quick precision test - Claudio L. - 06-05-2014, 09:25 PM
RE: A quick precision test - Paul Dale - 06-05-2014, 10:20 PM
RE: A quick precision test - Claudio L. - 06-06-2014, 01:03 AM
RE: A quick precision test - Paul Dale - 06-06-2014, 01:46 AM
RE: A quick precision test - pito - 06-04-2014, 02:12 PM
RE: A quick precision test - pito - 06-04-2014, 02:31 PM
RE: A quick precision test - pito - 06-05-2014, 08:49 PM
RE: A quick precision test - walter b - 06-05-2014, 09:07 PM
RE: A quick precision test - pito - 06-05-2014, 09:13 PM
RE: A quick precision test - Mark Hardman - 06-05-2014, 09:21 PM
RE: A quick precision test - pito - 06-06-2014, 12:19 PM
RE: A quick precision test - pito - 06-08-2014, 12:44 PM
RE: A quick precision test - walter b - 06-08-2014, 01:57 PM
RE: A quick precision test - pito - 06-08-2014, 02:07 PM
RE: A quick precision test - walter b - 06-08-2014, 03:00 PM
RE: A quick precision test - Paul Dale - 06-08-2014, 10:46 PM



User(s) browsing this thread: 1 Guest(s)