This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

1.5.12: FPU affected by gethostname call


Dear cygwin team,

the following c++ program (see below) is affected by a strange bug: floating 
point precision is decreased by uncommenting the call to gethostname(). 

Behaviour:

* you get high precision if you do not call gethostname()
* you get different values if the call is uncommented, i.e. executed
* if you change the long doubles to normal doubles, values seem to be not 
affected by the gethostname call
* the resulting values for double precision are equal to the values obtained 
with long doubles in case the gethostname() function is invoked

This seems to happen on AMD Athlons and Opterons. I do not have an Intel system 
to test this behaviour on. Only OS tested was Windows XP SP1.

Thank you!

--> the program:

#include <iostream>
#include <unistd.h>

int main () 
{
   char name[100];
   // gethostname(name, 99); // UNCOMMENT THIS TO CHANGE BEHAVIOR

   const unsigned int n = 2;
   const unsigned int m = (n+1)/2;

   const long double tolerance = 5e-16;

   long double z = std::cos(3.1415 * (.75)/(n+.5));

   long   double pp;
   long   double p1, p2, p3;

   do
   {
	  p1 = 1.;
	  p2 = 0.;
          for (unsigned int j=0;j<n;++j)
             {
              p3 = p2;
	      p2 = p1;
	      p1 = ((2.*j+1.)*z*p2-j*p3)/(j+1.);
              std::cout << p1 << "   " << p2 << "   " << p3 << "   " << z 
<< "   " << j << std::endl;
             }
	  pp = n*(z*p1-p2)/(z*z-1);
	  z = z-p1/pp;
          
          std::cout << p1 << "   " << p2 << "   " << p3 << "   " << " ### " << 
pp << "   " << z << std::endl;
	} 
      while (abs(p1/pp) > tolerance );
}

Attachment: cygcheck.out
Description: Text document

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]