TR1 Math Special Functions

Paolo Carlini pcarlini@suse.de
Thu Feb 8 17:14:00 GMT 2007


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

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

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.

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.



More information about the Libstdc++ mailing list