mirror of
https://github.com/boostorg/math.git
synced 2026-02-24 04:02:18 +00:00
Merge branch 'non-central-f-inverse' of github.com:JacobHass8/math into non-central-f-inverse
This commit is contained in:
@@ -39,7 +39,6 @@ else()
|
||||
Boost::lexical_cast
|
||||
Boost::predef
|
||||
Boost::random
|
||||
Boost::static_assert
|
||||
Boost::throw_exception
|
||||
)
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ constant boost_dependencies :
|
||||
/boost/lexical_cast//boost_lexical_cast
|
||||
/boost/predef//boost_predef
|
||||
/boost/random//boost_random
|
||||
/boost/static_assert//boost_static_assert
|
||||
/boost/throw_exception//boost_throw_exception ;
|
||||
|
||||
project /boost/math
|
||||
|
||||
@@ -16,7 +16,7 @@ if(HAVE_BOOST_TEST)
|
||||
|
||||
enable_testing()
|
||||
|
||||
boost_test_jamfile(FILE cuda_jamfile LINK_LIBRARIES Boost::math Boost::assert Boost::concept_check Boost::config Boost::core Boost::integer Boost::lexical_cast Boost::multiprecision Boost::predef Boost::random Boost::static_assert Boost::throw_exception Boost::unit_test_framework ${CUDA_LIBRARIES} INCLUDE_DIRECTORIES ${CUDA_INCLUDE_DIRS} )
|
||||
boost_test_jamfile(FILE cuda_jamfile LINK_LIBRARIES Boost::math Boost::assert Boost::concept_check Boost::config Boost::core Boost::integer Boost::lexical_cast Boost::multiprecision Boost::predef Boost::random Boost::throw_exception Boost::unit_test_framework ${CUDA_LIBRARIES} INCLUDE_DIRECTORIES ${CUDA_INCLUDE_DIRS} )
|
||||
|
||||
elseif (BOOST_MATH_ENABLE_NVRTC)
|
||||
|
||||
@@ -29,9 +29,9 @@ if(HAVE_BOOST_TEST)
|
||||
set(CUDA_nvrtc_LIBRARY /usr/local/cuda/lib64/libnvrtc.so)
|
||||
|
||||
if (BOOST_MATH_NVRTC_CI_RUN)
|
||||
boost_test_jamfile(FILE nvrtc_jamfile LINK_LIBRARIES Boost::math Boost::assert Boost::concept_check Boost::config Boost::core Boost::integer Boost::lexical_cast Boost::multiprecision Boost::predef Boost::random Boost::static_assert Boost::throw_exception ${CUDA_nvrtc_LIBRARY} ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY} COMPILE_DEFINITIONS BOOST_MATH_NVRTC_CI_RUN=1 INCLUDE_DIRECTORIES ${CUDA_INCLUDE_DIRS} )
|
||||
boost_test_jamfile(FILE nvrtc_jamfile LINK_LIBRARIES Boost::math Boost::assert Boost::concept_check Boost::config Boost::core Boost::integer Boost::lexical_cast Boost::multiprecision Boost::predef Boost::random Boost::throw_exception ${CUDA_nvrtc_LIBRARY} ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY} COMPILE_DEFINITIONS BOOST_MATH_NVRTC_CI_RUN=1 INCLUDE_DIRECTORIES ${CUDA_INCLUDE_DIRS} )
|
||||
else ()
|
||||
boost_test_jamfile(FILE nvrtc_jamfile LINK_LIBRARIES Boost::math Boost::assert Boost::concept_check Boost::config Boost::core Boost::integer Boost::lexical_cast Boost::multiprecision Boost::predef Boost::random Boost::static_assert Boost::throw_exception ${CUDA_nvrtc_LIBRARY} ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY} INCLUDE_DIRECTORIES ${CUDA_INCLUDE_DIRS} )
|
||||
boost_test_jamfile(FILE nvrtc_jamfile LINK_LIBRARIES Boost::math Boost::assert Boost::concept_check Boost::config Boost::core Boost::integer Boost::lexical_cast Boost::multiprecision Boost::predef Boost::random Boost::throw_exception ${CUDA_nvrtc_LIBRARY} ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY} INCLUDE_DIRECTORIES ${CUDA_INCLUDE_DIRS} )
|
||||
endif()
|
||||
|
||||
elseif (BOOST_MATH_ENABLE_SYCL)
|
||||
@@ -43,7 +43,7 @@ if(HAVE_BOOST_TEST)
|
||||
|
||||
enable_testing()
|
||||
|
||||
boost_test_jamfile(FILE sycl_jamfile LINK_LIBRARIES Boost::math Boost::assert Boost::concept_check Boost::config Boost::core Boost::integer Boost::lexical_cast Boost::multiprecision Boost::predef Boost::random Boost::static_assert Boost::throw_exception Boost::unit_test_framework sycl COMPILE_DEFINITIONS BOOST_MATH_ENABLE_SYCL=1 COMPILE_OPTIONS -fsycl )
|
||||
boost_test_jamfile(FILE sycl_jamfile LINK_LIBRARIES Boost::math Boost::assert Boost::concept_check Boost::config Boost::core Boost::integer Boost::lexical_cast Boost::multiprecision Boost::predef Boost::random Boost::throw_exception Boost::unit_test_framework sycl COMPILE_DEFINITIONS BOOST_MATH_ENABLE_SYCL=1 COMPILE_OPTIONS -fsycl )
|
||||
else()
|
||||
|
||||
boost_test(SOURCES check_cmake_version.cpp ARGUMENTS ${PROJECT_VERSION} LINK_LIBRARIES Boost::core Boost::config)
|
||||
|
||||
@@ -336,7 +336,7 @@ void test_spots(RealType, const char* name = nullptr)
|
||||
for (RealType x : x_vals)
|
||||
{
|
||||
RealType P = cdf(dist_no_centrality, x);
|
||||
BOOST_CHECK(dist.find_non_centrality(x, a, b, P) < tolerance);
|
||||
BOOST_CHECK_LE(dist.find_non_centrality(x, a, b, P), boost::math::tools::min_value<RealType>() * 10);
|
||||
}
|
||||
// Case when P=1 or P=0
|
||||
BOOST_MATH_CHECK_THROW(dist.find_non_centrality(x, a, b, 1), std::domain_error);
|
||||
@@ -344,6 +344,31 @@ void test_spots(RealType, const char* name = nullptr)
|
||||
// Case when Q=1 or Q=0
|
||||
BOOST_MATH_CHECK_THROW(dist.find_non_centrality(boost::math::complement(x, a, b, 1)), std::domain_error);
|
||||
BOOST_MATH_CHECK_THROW(dist.find_non_centrality(boost::math::complement(x, a, b, 0)), std::domain_error);
|
||||
//
|
||||
// Test non centrality finder over a grid of values:
|
||||
//
|
||||
RealType values[] = { 1.25, 3.5, 6.75, 8.25 };
|
||||
for (RealType v1 : values)
|
||||
{
|
||||
for (RealType v2 : values)
|
||||
{
|
||||
for (RealType nc : values)
|
||||
{
|
||||
for (RealType x : values)
|
||||
{
|
||||
boost::math::non_central_f_distribution<RealType> ref(v1, v2, nc);
|
||||
RealType P = cdf(ref, x);
|
||||
RealType Q = cdf(complement(ref, x));
|
||||
|
||||
RealType nc1 = ref.find_non_centrality(x, v1, v2, P);
|
||||
RealType nc2 = ref.find_non_centrality(boost::math::complement(x, v1, v2, Q));
|
||||
|
||||
BOOST_CHECK_CLOSE(nc1, nc, 2 * tolerance);
|
||||
BOOST_CHECK_CLOSE(nc2, nc, tolerance);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} // template <class RealType>void test_spots(RealType)
|
||||
|
||||
BOOST_AUTO_TEST_CASE( test_main )
|
||||
|
||||
Reference in New Issue
Block a user