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