- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - HP-UX
- >
- Bessel function yn appears only single-precision o...
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-22-2005 10:53 AM
тАО02-22-2005 10:53 AM
Bessel function yn appears only single-precision on IA64
yn( 2, 0.98726577450859631657 )
I get the following:
PA-32 => -1.68339139976380280000
IA-64 => -1.68339139819686622879
which differ starting at the 9th decimal. So is the IA-64 call only running float precision and not double precision?
Thanks.
--
Bob
- Tags:
- floating point
- libm
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-23-2005 06:48 AM
тАО02-23-2005 06:48 AM
Re: Bessel function yn appears only single-precision on IA64
seems to indicate that those digits
are beyond PA's precision. IA-64
supports the Intel 80-bit floating type;
perhaps libm uses it internally. For
comparison, running your program on
IA-32 (Win2k/Cygwin/gcc) gives
-1.68339139976380280928, which has the same
# of digits as your IA-64 result but which
is closer in value to your PA result.
Also, perhaps PHSS_32066 (Math Library
Cumulative Patch) will help.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-23-2005 07:08 AM
тАО02-23-2005 07:08 AM
Re: Bessel function yn appears only single-precision on IA64
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-23-2005 07:47 AM
тАО02-23-2005 07:47 AM
Re: Bessel function yn appears only single-precision on IA64
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-23-2005 10:02 AM
тАО02-23-2005 10:02 AM
Re: Bessel function yn appears only single-precision on IA64
--
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-23-2005 08:27 PM
тАО02-23-2005 08:27 PM
Re: Bessel function yn appears only single-precision on IA64
#include
int main()
{
double d = 1.2345678910111213141516;
float f = 1.2345678910111213141516;
printf("%.20f\n", d);
printf("%.20f\n", f);
return(0);
}
When I run compile (using gcc) and run (PA-RISC 11.11) this, I get
1.23456789101112130000
1.23456788063049320000
Which indicates I'm getting around 16 digits of precision for double and around 8 for float.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-24-2005 03:14 AM
тАО02-24-2005 03:14 AM
Re: Bessel function yn appears only single-precision on IA64
BTW, I also get similar problems with the y1 function.
--
Bob
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО02-24-2005 08:53 AM
тАО02-24-2005 08:53 AM
Re: Bessel function yn appears only single-precision on IA64
IA-64 shows that they both get the same
internal bit patterns for 0.987265... (so
it's not a compiler parsing or type
conversion problem), and the value
generated by yn() is indeed a different
bit pattern (so it's not a printf()
problem). Curious.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО12-28-2011 04:10 AM
тАО12-28-2011 04:10 AM
Re: Bessel function yn appears only single-precision on IA64
>which differ starting at the 9th decimal. So is the IA-64 call only running float precision and not double precision?
If it was float, it would differ in the 7th decimal place.
It looks like you found a known problem:
PHSS_33276: s700_800 11.23 Math Library Cumulative Patch
JAGaf55860: Bessel functions have precision problems
The corrected values:
-1.68339139976380275131 long double
-1.68339139976380280928 double
-1.68339145183563232422 float
>IA-64 supports the Intel 80-bit floating type; perhaps libm uses it internally.
Naturally, the Integrity Math Lib was rewritten to be faster and more accurate.
>perhaps PHSS_32066 (Math Library Cumulative Patch) will help.
Unfortunately not until PHSS_33276.
Most math function are accurate to .5 ULP. But Bessel and a few other functions don't meet this: