This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ 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]

Re: TR1 Math Special Functions


Paolo Carlini wrote:
Hi again,

Here is another drop.

It is completely reworked relative to the last one.

IMHO, very good progress, indeed.


I just finished regtesting on x86_64-linux and got the following 4 failures:

check_value.exe: */tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/check_value.cc:2143: void test049() [with Tp = double]: Assertion `max_abs_frac < Tp(0.002)' failed.
FAIL: tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/check_value.cc execution test


check_value.exe: */tr1/5_numerical_facilities/special_functions/17_hyperg/check_value.cc:4336: void test086() [with Tp = double]: Assertion `max_abs_frac < Tp(0.002)' failed.
FAIL: tr1/5_numerical_facilities/special_functions/17_hyperg/check_value.cc execution test


check_value.exe: */tr1/5_numerical_facilities/special_functions/18_laguerre/check_value.cc:400: void test007() [with Tp = double]: Assertion `max_abs_frac < Tp(0.002)' failed.
FAIL: tr1/5_numerical_facilities/special_functions/18_laguerre/check_value.cc execution test


check_value.exe: */tr1/5_numerical_facilities/special_functions/22_sph_legendre/check_value.cc:1202: void test022() [with Tp = double]: Assertion `max_abs_frac < Tp(2.0000000000000016e-14)' failed.
FAIL: tr1/5_numerical_facilities/special_functions/22_sph_legendre/check_value.cc execution test


I have some fixed. One or two I'm going to have to XFAIL for now.
Besides that, before we can do the first commit, I can see one blocker issue (really, because affects the bootstrap itself, on some targets): you are using in many places std::isnan, which, in fact, is only available if the target supports the C99 math facilities (grep tr1/cmath about isnan & co, about that). What do you suggest? As a stopgap solution we could also disable completely the affected code (but I appreciate your efforts with tgamma, elsewhere... )

Am I allowed to use this:
     else if (::__gnu_cxx::__capture_isnan(__alpha))
       return std::numeric_limits<_Tpa>::quiet_NaN();

Otherwise, I see un-uglified names in struct __numeric_constants, it would be nice if you could take care of that and well, of course double check that you are not using unconditionally any other C99 facility (configuring --disable-c99 should help here). But I can take care of these trivial things, in order to speed-up the process, if you are willing to look into the above more substantive ones.
I'm now preceding the static function names with two underscores.

Many thanks for your patience with the various issues, I think we are quickly converging to code ready for the first commit, really. I look forward to the next, i.e., last, iteration...


Paolo.



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