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



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 think the best way to proceed with these tests is to get the main chunk of code in to svn first, with these specific tests XFAILED.


Ed, to do this, you add this to the top of the testfile you expect to fail:

// { dg-do run { xfail *-*-* } }

This would allow the tests to be run, and then the libstdc++.log files could be analyzed to see what the failure points are...

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... )

Easy stopgap is to guard with these macros...


#if _GLIBCXX_USE_C99_MATH
#if !_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC

// isnan

#endif
#endif

This will clutter things up but I don't see any way around this.

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.

Seems reasonable to me.


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...

It seems like this iteration could be a smaller step forward then the previous couple of leaps.


best,
-benjamin


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