mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-07-15 17:41:48 +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:
|
||||
*
|
||||
* 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
|
||||
@ -635,8 +635,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