Re: computing exp(1.0) on SPARC.
- From: Stuart Biggar <sbiggar@xxxxxxxxxxxxxxxxx>
- Date: Fri, 01 Jan 2010 07:06:57 -0700
On 12/31/09 6:42 PM, David Kirkby wrote:
I'm guessing that since the SPARC processor uses 64-bit for the
computations, but the Intel processors uses 80 bits internally, there
is justification for choosing a slightly less accurate but faster
implementation on SPARC.
I'm no expert on this, but have a better understanding of it then I
did a day or two ago.
Dave
Dave,
On various Intel platforms, double precision may use SSE where
the math is done at 64-bit, not the extended precision of 80-bit
used in the 80N87 (math co-processor). Also at least one Windows
C compiler silently converts long doubles to doubles to allow use
of the faster SSE stuff - gives "interesting" results when the
code specifically tries to use 80-bits for accuracy.
If you need an accurate value for e, it is defined in one of
the include files along with various other constants like
pi and fractions of pi (from math.h on SPARC S10U4):
#define M_E 2.7182818284590452354
#define M_LOG2E 1.4426950408889634074
#define M_LOG10E 0.43429448190325182765
#define M_LN2 0.69314718055994530942
#define M_LN10 2.30258509299404568402
#define M_PI 3.14159265358979323846
#define M_PI_2 1.57079632679489661923
#define M_PI_4 0.78539816339744830962
#define M_1_PI 0.31830988618379067154
#define M_2_PI 0.63661977236758134308
#define M_2_SQRTPI 1.12837916709551257390
#define M_SQRT2 1.41421356237309504880
#define M_SQRT1_2 0.70710678118654752440
With Studio you can also use optimized math libraries.
I have no idea if the values of things would change
by linking with them (typically done automatically if
you optimize using -fast and maybe other options or
manually during the link step).
Stuart
.
- Follow-Ups:
- Re: computing exp(1.0) on SPARC.
- From: David Kirkby
- Re: computing exp(1.0) on SPARC.
- From: Richard B. Gilbert
- Re: computing exp(1.0) on SPARC.
- References:
- Re: computing exp(1.0) on SPARC.
- From: David Kirkby
- Re: computing exp(1.0) on SPARC.
- Prev by Date: 2 alias usage problems and set variable constraint
- Next by Date: Re: computing exp(1.0) on SPARC.
- Previous by thread: Re: computing exp(1.0) on SPARC.
- Next by thread: Re: computing exp(1.0) on SPARC.
- Index(es):
Relevant Pages
|