This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: TR1 Math Special Functions
- From: Benjamin Kosnik <bkoz at redhat dot com>
- To: Paolo Carlini <pcarlini at suse dot de>
- Cc: Ed Smith-Rowland <3dw4rd at verizon dot net>, libstdc++ at gcc dot gnu dot org
- Date: Thu, 08 Feb 2007 19:49:50 +0100
- Subject: Re: TR1 Math Special Functions
- References: <45C63159.1070706@verizon.net> <45CB5AA2.6000100@suse.de>
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