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