TR1 Math Special Functions

Paolo Carlini pcarlini@suse.de
Sun Mar 4 10:50:00 GMT 2007


Hi,

> I just did a build/test cycle on x86/linux (FC6). This is what I get:
>
> XPASS: 26_numerics/headers/cmath/c99_classification_macros_c.cc (test 
> for excess errors)
> FAIL: 
> tr1/5_numerical_facilities/special_functions/01_assoc_laguerre/check_value.cc 
> execution test
> FAIL: 
> tr1/5_numerical_facilities/special_functions/02_assoc_legendre/check_value.cc 
> execution test
> FAIL: 
> tr1/5_numerical_facilities/special_functions/17_hyperg/check_value.cc 
> execution test
> FAIL: 
> tr1/5_numerical_facilities/special_functions/18_laguerre/check_value.cc 
> execution test
> FAIL: 
> tr1/5_numerical_facilities/special_functions/22_sph_legendre/check_value.cc 
> execution test

I did built/test on powerpc-darwin, x86_64-linux multilib and 
ia64-linux. The worst case is that of powerpc-darwin-8.8.0, where we have:

FAIL: 
tr1/5_numerical_facilities/special_functions/02_assoc_legendre/check_value.cc 
execution test
FAIL: 
tr1/5_numerical_facilities/special_functions/03_beta/check_value.cc 
execution test
FAIL: 
tr1/5_numerical_facilities/special_functions/12_ellint_1/check_value.cc 
execution test
FAIL: 
tr1/5_numerical_facilities/special_functions/13_ellint_2/check_value.cc 
execution test
FAIL: 
tr1/5_numerical_facilities/special_functions/14_ellint_3/check_value.cc 
execution test
FAIL: 
tr1/5_numerical_facilities/special_functions/17_hyperg/check_value.cc 
execution test
FAIL: 
tr1/5_numerical_facilities/special_functions/22_sph_legendre/check_value.cc 
execution test

Since apparently Ed has access also to this kind of target, I would ask 
him to check a bit at least the additional fails. Otherwise we are going 
to xfail way too many tests :(

Moreover, in order to be safe wrt bootstrap fails, I also built 
--disable-c99 (as already mentioned) and an unexpected issue surfaced:

In file included from 
/home/paolo/Gcc/svn-dirs/trunk/libstdc++-v3/include/precompiled/stdtr1c++.h:57:
/home/paolo/Gcc/svn-dirs/trunk-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/tr1/special_function_util.h: 
In function 'bool std::tr1::__detail::__isnan(_Tp) [with _Tp = unsigned 
int]':
/home/paolo/Gcc/svn-dirs/trunk-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/tr1/poly_laguerre.tcc:253:   
instantiated from '_Tp std::tr1::__detail::__poly_laguerre(unsigned int, 
_Tpa, _Tp) [with _Tpa = unsigned int, _Tp = float]'
/home/paolo/Gcc/svn-dirs/trunk-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/tr1/cmath:971:   
instantiated from here
/home/paolo/Gcc/svn-dirs/trunk-build/x86_64-unknown-linux-gnu/libstdc++-v3/include/tr1/special_function_util.h:130: 
error: non-floating-point argument to function '__builtin_isnan'
make[2]: *** [x86_64-unknown-linux-gnu/bits/stdtr1c++.h.gch/O2g.gch] Error 1

I could quickly hack-up something (like removing completely the isnan 
check), but I'd like to ask Ed to double check the whole 
__poly_laguerre, because, as far as I can see, we are always calling it 
with an unsigned int first template argument (_Tpa).

Thanks,
Paolo.



More information about the Libstdc++ mailing list