mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-09-23 23:03:15 +08:00
Return NaN in ndtri for values outside valid input range.
This commit is contained in:
parent
94f57867fe
commit
1f79a6078f
@ -474,9 +474,9 @@ struct erfc_impl<double> {
|
||||
* ERROR MESSAGES:
|
||||
*
|
||||
* message condition value returned
|
||||
* ndtri domain x <= 0 -MAXNUM
|
||||
* ndtri domain x >= 1 MAXNUM
|
||||
*
|
||||
* ndtri domain x == 0 -INF
|
||||
* ndtri domain x == 1 INF
|
||||
* ndtri domain x < 0, x > 1 NAN
|
||||
*/
|
||||
/*
|
||||
Cephes Math Library Release 2.2: June, 1992
|
||||
@ -637,8 +637,8 @@ T generic_ndtri(const T& a) {
|
||||
generic_ndtri_lt_exp_neg_two<T, ScalarType>(b, should_flipsign));
|
||||
|
||||
return pselect(
|
||||
pcmp_le(a, zero), neg_maxnum,
|
||||
pselect(pcmp_le(one, a), maxnum, ndtri));
|
||||
pcmp_eq(a, zero), neg_maxnum,
|
||||
pselect(pcmp_eq(one, a), maxnum, ndtri));
|
||||
}
|
||||
|
||||
template <typename Scalar>
|
||||
|
@ -171,9 +171,9 @@ template<typename ArrayType> void array_special_functions()
|
||||
|
||||
// Check the ndtri function against scipy.special.ndtri
|
||||
{
|
||||
ArrayType x(7), res(7), ref(7);
|
||||
x << 0.5, 0.2, 0.8, 0.9, 0.1, 0.99, 0.01;
|
||||
ref << 0., -0.8416212335729142, 0.8416212335729142, 1.2815515655446004, -1.2815515655446004, 2.3263478740408408, -2.3263478740408408;
|
||||
ArrayType x(11), res(11), ref(11);
|
||||
x << 0.5, 0.2, 0.8, 0.9, 0.1, 0.99, 0.01, 0, 1, -0.01, 1.01;
|
||||
ref << 0., -0.8416212335729142, 0.8416212335729142, 1.2815515655446004, -1.2815515655446004, 2.3263478740408408, -2.3263478740408408, -plusinf, plusinf, nan, nan;
|
||||
CALL_SUBTEST( verify_component_wise(ref, ref); );
|
||||
CALL_SUBTEST( res = x.ndtri(); verify_component_wise(res, ref); );
|
||||
CALL_SUBTEST( res = ndtri(x); verify_component_wise(res, ref); );
|
||||
|
Loading…
x
Reference in New Issue
Block a user