Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   CentOS (http://www.linux-archive.org/centos/)
-   -   random roundoff? (http://www.linux-archive.org/centos/517728-random-roundoff.html)

"Michael D. Berger" 04-24-2011 02:54 AM

random roundoff?
 
On my CentOS 5 box, in a C++ program that does much arithmetic,
including numerous matrix multiplications, I have a situation in
in which the result depends on the nature of nearby I/O. Thus,
with all arithmetic done with type double, and where values
are mostly in the range [-1.0e0,+1.0e0] or nearby, I do:

cerr << "some stuff" << endl;
mat3 = matmult(mat1,mat2);

I get a difference of the order 1.0e-15 depending on whether the
cerr line does or does not end in "endl" as shown.

I am imagining that there is some "randomness" in the roundoff
that depends on the I/O situation. Is this credible? Any other
suggestions?

Thanks for your help,
Mike.

_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos

Leonard den Ottolander 04-24-2011 12:50 PM

random roundoff?
 
Hello Michael,

On Sun, 2011-04-24 at 02:54 +0000, Michael D. Berger wrote:
> cerr << "some stuff" << endl;
> mat3 = matmult(mat1,mat2);
>
> I get a difference of the order 1.0e-15 depending on whether the
> cerr line does or does not end in "endl" as shown.

If the exact same input produces different results depending on whether
or not you add and endl before the function call would probably count as
a bug. Could be something like a status bit that does not get cleared
when it should be.

However, since this is such a gcc specific issue I would suggest you
take this upstream: http://gcc.gnu.org/lists.html . People there will
probably be able to help you better than the people on this list.

Regards,
Leonard.

--
mount -t life -o ro /dev/dna /genetic/research


_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos

Todd Rinaldo 04-26-2011 03:19 PM

random roundoff?
 
On Apr 23, 2011, at 9:54 PM, Michael D. Berger wrote:On my CentOS 5 box, in a C++ program that does much arithmetic,
including numerous matrix multiplications, I have a situation in
in which the result depends on the nature of nearby I/O. *Thus,
with all arithmetic done with type double, and where values
are mostly in the range [-1.0e0,+1.0e0] *or nearby, I do:

**cerr << "some stuff" << endl;
**mat3 = matmult(mat1,mat2);

I get a difference of the order 1.0e-15 depending on whether the
cerr line does or does not end in "endl" as shown.

I am imagining that there is some "randomness" in the roundoff
that depends on the I/O situation. *Is this credible? *Any other
suggestions?

Thanks for your help,
Mike.

Mike, I think I'm understanding your problem. This just sounds like a floating point rounding issue.
You've read the floating point bible already?http://download.oracle.com/docs/cd/E19957-01/806-3568/ncg_goldberg.html
Todd______________________________________________ _
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos


All times are GMT. The time now is 02:02 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.