string is not a member of 'std' ... and divide by zero
Page 1 of 1

Author:  Sergey.Bochkanov [ Tue May 28, 2013 8:09 am ]
Post subject:  Re: string is not a member of 'std' ... and divide by zero


1. situation with std::string is something specific for C++ Builder. Unfortunately, we have not tested ALGLIB with newer versions of C++ Builder. string class must be part of std, and I think that it can be fixed by including appropriate files - I just do not have a copy of C++ Builder to experiment with.

2. regarding division by zero. It occurs when all Y[] are same, and total sum-of-squares is zero. Most C++ and C# compilers are compliant with IEEE 754 standard and handle it by returning NAN as result (that's why it was not caught), but C++ Builder raises an exception (I think that it is NOT correct behavior) unless you manually mask floating-point exceptions.

As I told, IEEE 754 compliant should handle it gracefully, but I decided to regard it as a minor bug. It was added to issues tracker and will be fixed in upcoming 3.8.0

As for you, you may:
(a) manually mask FP exceptions when your program starts (recommended)
(b) replace "rep->r2 = 1.0 - rss/tss;" by "rep->r2 = tss>0 ? 1.0 - rss/tss : 1.0;"

Page 1 of 1 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group