mirror of
https://github.com/boostorg/math.git
synced 2026-01-19 04:22:09 +00:00
Split the multiprecision concept checks into smaller chunks for lower compiler memory usage.
This commit is contained in:
@@ -851,6 +851,12 @@ test-suite mp :
|
||||
[ compile multiprc_concept_check_2.cpp : <debug-symbols>off <toolset>msvc:<cxxflags>/bigobj release <exception-handling>off:<build>no ]
|
||||
[ compile multiprc_concept_check_3.cpp : <debug-symbols>off <toolset>msvc:<cxxflags>/bigobj release <exception-handling>off:<build>no ]
|
||||
[ compile multiprc_concept_check_4.cpp : <debug-symbols>off <toolset>msvc:<cxxflags>/bigobj release <exception-handling>off:<build>no ]
|
||||
[ compile multiprc_concept_check_5.cpp : <debug-symbols>off <toolset>msvc:<cxxflags>/bigobj release <exception-handling>off:<build>no ]
|
||||
[ compile multiprc_concept_check_6.cpp : <debug-symbols>off <toolset>msvc:<cxxflags>/bigobj release <exception-handling>off:<build>no ]
|
||||
[ compile multiprc_concept_check_7.cpp : <debug-symbols>off <toolset>msvc:<cxxflags>/bigobj release <exception-handling>off:<build>no ]
|
||||
[ compile multiprc_concept_check_8.cpp : <debug-symbols>off <toolset>msvc:<cxxflags>/bigobj release <exception-handling>off:<build>no ]
|
||||
[ compile multiprc_concept_check_9.cpp : <debug-symbols>off <toolset>msvc:<cxxflags>/bigobj release <exception-handling>off:<build>no ]
|
||||
[ compile multiprc_concept_check_10.cpp : <debug-symbols>off <toolset>msvc:<cxxflags>/bigobj release <exception-handling>off:<build>no ]
|
||||
[ compile ntl_concept_check.cpp : [ check-target-builds ../config//has_ntl_rr : : <build>no ] <debug-symbols>off ]
|
||||
[ compile mpfr_concept_check.cpp : [ check-target-builds ../config//has_mpfr_class : : <build>no ] <debug-symbols>off ]
|
||||
[ compile mpreal_concept_check.cpp : [ check-target-builds ../config//has_mpreal : : <build>no ] <debug-symbols>off ]
|
||||
|
||||
@@ -35,8 +35,8 @@ BOOST_MATH_DECLARE_DISTRIBUTIONS(double, test_policy)
|
||||
#endif
|
||||
|
||||
#if !defined(TEST_GROUP_1) && !defined(TEST_GROUP_2) && !defined(TEST_GROUP_3) \
|
||||
&& !defined(TEST_GROUP_4) && !defined(TEST_GROUP_5) && !defined(TEST_GROUP_6) \
|
||||
&& !defined(TEST_GROUP_7) && !defined(TEST_GROUP_8) && !defined(TEST_GROUP_9)
|
||||
&& !defined(TEST_GROUP_4) && !defined(TEST_GROUP_5) && !defined(TEST_GROUP_6) && !defined(TEST_GROUP_7) && !defined(TEST_GROUP_8) && !defined(TEST_GROUP_9) \
|
||||
&& !defined(TEST_GROUP_10) && !defined(TEST_GROUP_11) && !defined(TEST_GROUP_12) && !defined(TEST_GROUP_13) && !defined(TEST_GROUP_14) && !defined(TEST_GROUP_15)
|
||||
# define TEST_GROUP_1
|
||||
# define TEST_GROUP_2
|
||||
# define TEST_GROUP_3
|
||||
@@ -46,6 +46,12 @@ BOOST_MATH_DECLARE_DISTRIBUTIONS(double, test_policy)
|
||||
# define TEST_GROUP_7
|
||||
# define TEST_GROUP_8
|
||||
# define TEST_GROUP_9
|
||||
# define TEST_GROUP_10
|
||||
# define TEST_GROUP_11
|
||||
# define TEST_GROUP_12
|
||||
# define TEST_GROUP_13
|
||||
# define TEST_GROUP_14
|
||||
# define TEST_GROUP_15
|
||||
#endif
|
||||
|
||||
template <class RealType>
|
||||
@@ -228,6 +234,8 @@ void instantiate(RealType)
|
||||
boost::math::cbrt(v1);
|
||||
boost::math::sqrt1pm1(v1);
|
||||
boost::math::powm1(v1, v2);
|
||||
#endif
|
||||
#ifdef TEST_GROUP_5
|
||||
boost::math::legendre_p(1, v1);
|
||||
boost::math::legendre_p(1, 0, v1);
|
||||
boost::math::legendre_q(1, v1);
|
||||
@@ -296,6 +304,8 @@ void instantiate(RealType)
|
||||
boost::math::atanh(v1);
|
||||
boost::math::sin_pi(v1);
|
||||
boost::math::cos_pi(v1);
|
||||
#endif
|
||||
#ifdef TEST_GROUP_6
|
||||
boost::math::cyl_neumann(v1, v2);
|
||||
boost::math::cyl_neumann(i, v2);
|
||||
boost::math::cyl_bessel_j(v1, v2);
|
||||
@@ -337,6 +347,8 @@ void instantiate(RealType)
|
||||
boost::math::sph_hankel_2(v1, v2);
|
||||
boost::math::sph_hankel_2(i, v2);
|
||||
#endif
|
||||
#endif
|
||||
#ifdef TEST_GROUP_7
|
||||
boost::math::airy_ai(v1);
|
||||
boost::math::airy_bi(v1);
|
||||
boost::math::airy_ai_prime(v1);
|
||||
@@ -394,7 +406,7 @@ void instantiate(RealType)
|
||||
boost::math::tangent_t2n<RealType>(i, i, &v1);
|
||||
|
||||
#endif
|
||||
#ifdef TEST_GROUP_9
|
||||
#ifdef TEST_GROUP_12
|
||||
//
|
||||
// Over again, but arguments may be expression templates:
|
||||
//
|
||||
@@ -452,6 +464,8 @@ void instantiate(RealType)
|
||||
boost::math::cbrt(v1 * 1);
|
||||
boost::math::sqrt1pm1(v1 * 1);
|
||||
boost::math::powm1(v1 * 1, v2 + 0);
|
||||
#endif
|
||||
#ifdef TEST_GROUP_13
|
||||
boost::math::legendre_p(1, v1 * 1);
|
||||
boost::math::legendre_p(1, 0, v1 * 1);
|
||||
boost::math::legendre_p_prime(1, v1 * 1);
|
||||
@@ -520,6 +534,8 @@ void instantiate(RealType)
|
||||
boost::math::atanh(v1 * 1);
|
||||
boost::math::sin_pi(v1 * 1);
|
||||
boost::math::cos_pi(v1 * 1);
|
||||
#endif
|
||||
#ifdef TEST_GROUP_14
|
||||
boost::math::cyl_neumann(v1 * 1, v2 + 0);
|
||||
boost::math::cyl_neumann(i, v2 * 1);
|
||||
boost::math::cyl_bessel_j(v1 * 1, v2 + 0);
|
||||
@@ -561,6 +577,8 @@ void instantiate(RealType)
|
||||
boost::math::sph_hankel_2(v1, v2);
|
||||
boost::math::sph_hankel_2(i, v2);
|
||||
#endif
|
||||
#endif
|
||||
#ifdef TEST_GROUP_15
|
||||
boost::math::airy_ai(v1 * 1);
|
||||
boost::math::airy_bi(v1 * 1);
|
||||
boost::math::airy_ai_prime(v1 * 1);
|
||||
@@ -598,7 +616,7 @@ void instantiate(RealType)
|
||||
boost::math::epsilon_difference(v1 * 1, v2 * 1);
|
||||
#endif
|
||||
#ifndef BOOST_MATH_INSTANTIATE_MINIMUM
|
||||
#ifdef TEST_GROUP_5
|
||||
#ifdef TEST_GROUP_8
|
||||
//
|
||||
// All over again, with a policy this time:
|
||||
//
|
||||
@@ -819,7 +837,7 @@ void instantiate(RealType)
|
||||
boost::math::tangent_t2n<RealType>(i, pol);
|
||||
boost::math::tangent_t2n<RealType>(i, i, &v1, pol);
|
||||
#endif
|
||||
#ifdef TEST_GROUP_6
|
||||
#ifdef TEST_GROUP_9
|
||||
//
|
||||
// All over again with the versions in test::
|
||||
//
|
||||
@@ -1057,7 +1075,7 @@ void instantiate_mixed(RealType)
|
||||
double lr = 0.5L;
|
||||
(void)lr;
|
||||
#endif
|
||||
#ifdef TEST_GROUP_7
|
||||
#ifdef TEST_GROUP_10
|
||||
boost::math::tgamma(i);
|
||||
boost::math::tgamma1pm1(i);
|
||||
boost::math::lgamma(i);
|
||||
@@ -1389,7 +1407,7 @@ void instantiate_mixed(RealType)
|
||||
boost::math::lambert_wm1(i, pol);
|
||||
boost::math::lambert_w0_prime(i, pol);
|
||||
#endif
|
||||
#ifdef TEST_GROUP_8
|
||||
#ifdef TEST_GROUP_11
|
||||
test::tgamma(i);
|
||||
test::tgamma1pm1(i);
|
||||
test::lgamma(i);
|
||||
|
||||
47
test/multiprc_concept_check_10.cpp
Normal file
47
test/multiprc_concept_check_10.cpp
Normal file
@@ -0,0 +1,47 @@
|
||||
|
||||
// Copyright John Maddock 2020.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
//
|
||||
// This tests two things: that multiprecision::number meets our
|
||||
// conceptual requirements, and that we can instantiate
|
||||
// all our distributions and special functions on this type.
|
||||
//
|
||||
#define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
|
||||
#define TEST_GROUP_15
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(disable:4800)
|
||||
# pragma warning(disable:4512)
|
||||
# pragma warning(disable:4127)
|
||||
# pragma warning(disable:4512)
|
||||
# pragma warning(disable:4503) // decorated name length exceeded, name was truncated
|
||||
#endif
|
||||
|
||||
#include <boost/multiprecision/cpp_dec_float.hpp>
|
||||
#include "compile_test/instantiate.hpp"
|
||||
|
||||
using namespace boost::multiprecision;
|
||||
|
||||
typedef number<cpp_dec_float<50>, et_on> test_type;
|
||||
|
||||
// We get sporadic internal compiler errors from gcc-7.x when CI testing
|
||||
// that don't appear to be reproducible locally. gcc-6.x and gcc-8.x are fine
|
||||
// so for now it's a <shrug> and move on...
|
||||
#if ! (defined(BOOST_GCC) && (__GNUC__ == 7))
|
||||
|
||||
void foo()
|
||||
{
|
||||
instantiate(test_type());
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
//BOOST_CONCEPT_ASSERT((boost::math::concepts::RealTypeConcept<test_type>));
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
//
|
||||
#define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
|
||||
#define TEST_GROUP_4
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(disable:4800)
|
||||
# pragma warning(disable:4512)
|
||||
@@ -21,7 +20,6 @@
|
||||
#endif
|
||||
|
||||
#include <boost/multiprecision/cpp_dec_float.hpp>
|
||||
#include <boost/math/concepts/real_type_concept.hpp>
|
||||
#include "compile_test/instantiate.hpp"
|
||||
|
||||
using namespace boost::multiprecision;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
// all our distributions and special functions on this type.
|
||||
//
|
||||
#define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
|
||||
#define TEST_GROUP_9
|
||||
#define TEST_GROUP_5
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(disable:4800)
|
||||
@@ -21,7 +21,6 @@
|
||||
#endif
|
||||
|
||||
#include <boost/multiprecision/cpp_dec_float.hpp>
|
||||
#include <boost/math/concepts/real_type_concept.hpp>
|
||||
#include "compile_test/instantiate.hpp"
|
||||
|
||||
using namespace boost::multiprecision;
|
||||
|
||||
47
test/multiprc_concept_check_5.cpp
Normal file
47
test/multiprc_concept_check_5.cpp
Normal file
@@ -0,0 +1,47 @@
|
||||
|
||||
// Copyright John Maddock 2020.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
//
|
||||
// This tests two things: that multiprecision::number meets our
|
||||
// conceptual requirements, and that we can instantiate
|
||||
// all our distributions and special functions on this type.
|
||||
//
|
||||
#define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
|
||||
#define TEST_GROUP_6
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(disable:4800)
|
||||
# pragma warning(disable:4512)
|
||||
# pragma warning(disable:4127)
|
||||
# pragma warning(disable:4512)
|
||||
# pragma warning(disable:4503) // decorated name length exceeded, name was truncated
|
||||
#endif
|
||||
|
||||
#include <boost/multiprecision/cpp_dec_float.hpp>
|
||||
#include "compile_test/instantiate.hpp"
|
||||
|
||||
using namespace boost::multiprecision;
|
||||
|
||||
typedef number<cpp_dec_float<50>, et_on> test_type;
|
||||
|
||||
// We get sporadic internal compiler errors from gcc-7.x when CI testing
|
||||
// that don't appear to be reproducible locally. gcc-6.x and gcc-8.x are fine
|
||||
// so for now it's a <shrug> and move on...
|
||||
#if ! (defined(BOOST_GCC) && (__GNUC__ == 7))
|
||||
|
||||
void foo()
|
||||
{
|
||||
instantiate(test_type());
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
//BOOST_CONCEPT_ASSERT((boost::math::concepts::RealTypeConcept<test_type>));
|
||||
}
|
||||
|
||||
|
||||
47
test/multiprc_concept_check_6.cpp
Normal file
47
test/multiprc_concept_check_6.cpp
Normal file
@@ -0,0 +1,47 @@
|
||||
|
||||
// Copyright John Maddock 2020.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
//
|
||||
// This tests two things: that multiprecision::number meets our
|
||||
// conceptual requirements, and that we can instantiate
|
||||
// all our distributions and special functions on this type.
|
||||
//
|
||||
#define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
|
||||
#define TEST_GROUP_7
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(disable:4800)
|
||||
# pragma warning(disable:4512)
|
||||
# pragma warning(disable:4127)
|
||||
# pragma warning(disable:4512)
|
||||
# pragma warning(disable:4503) // decorated name length exceeded, name was truncated
|
||||
#endif
|
||||
|
||||
#include <boost/multiprecision/cpp_dec_float.hpp>
|
||||
#include "compile_test/instantiate.hpp"
|
||||
|
||||
using namespace boost::multiprecision;
|
||||
|
||||
typedef number<cpp_dec_float<50>, et_on> test_type;
|
||||
|
||||
// We get sporadic internal compiler errors from gcc-7.x when CI testing
|
||||
// that don't appear to be reproducible locally. gcc-6.x and gcc-8.x are fine
|
||||
// so for now it's a <shrug> and move on...
|
||||
#if ! (defined(BOOST_GCC) && (__GNUC__ == 7))
|
||||
|
||||
void foo()
|
||||
{
|
||||
instantiate(test_type());
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
//BOOST_CONCEPT_ASSERT((boost::math::concepts::RealTypeConcept<test_type>));
|
||||
}
|
||||
|
||||
|
||||
47
test/multiprc_concept_check_7.cpp
Normal file
47
test/multiprc_concept_check_7.cpp
Normal file
@@ -0,0 +1,47 @@
|
||||
|
||||
// Copyright John Maddock 2020.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
//
|
||||
// This tests two things: that multiprecision::number meets our
|
||||
// conceptual requirements, and that we can instantiate
|
||||
// all our distributions and special functions on this type.
|
||||
//
|
||||
#define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
|
||||
#define TEST_GROUP_12
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(disable:4800)
|
||||
# pragma warning(disable:4512)
|
||||
# pragma warning(disable:4127)
|
||||
# pragma warning(disable:4512)
|
||||
# pragma warning(disable:4503) // decorated name length exceeded, name was truncated
|
||||
#endif
|
||||
|
||||
#include <boost/multiprecision/cpp_dec_float.hpp>
|
||||
#include "compile_test/instantiate.hpp"
|
||||
|
||||
using namespace boost::multiprecision;
|
||||
|
||||
typedef number<cpp_dec_float<50>, et_on> test_type;
|
||||
|
||||
// We get sporadic internal compiler errors from gcc-7.x when CI testing
|
||||
// that don't appear to be reproducible locally. gcc-6.x and gcc-8.x are fine
|
||||
// so for now it's a <shrug> and move on...
|
||||
#if ! (defined(BOOST_GCC) && (__GNUC__ == 7))
|
||||
|
||||
void foo()
|
||||
{
|
||||
instantiate(test_type());
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
//BOOST_CONCEPT_ASSERT((boost::math::concepts::RealTypeConcept<test_type>));
|
||||
}
|
||||
|
||||
|
||||
47
test/multiprc_concept_check_8.cpp
Normal file
47
test/multiprc_concept_check_8.cpp
Normal file
@@ -0,0 +1,47 @@
|
||||
|
||||
// Copyright John Maddock 2020.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
//
|
||||
// This tests two things: that multiprecision::number meets our
|
||||
// conceptual requirements, and that we can instantiate
|
||||
// all our distributions and special functions on this type.
|
||||
//
|
||||
#define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
|
||||
#define TEST_GROUP_13
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(disable:4800)
|
||||
# pragma warning(disable:4512)
|
||||
# pragma warning(disable:4127)
|
||||
# pragma warning(disable:4512)
|
||||
# pragma warning(disable:4503) // decorated name length exceeded, name was truncated
|
||||
#endif
|
||||
|
||||
#include <boost/multiprecision/cpp_dec_float.hpp>
|
||||
#include "compile_test/instantiate.hpp"
|
||||
|
||||
using namespace boost::multiprecision;
|
||||
|
||||
typedef number<cpp_dec_float<50>, et_on> test_type;
|
||||
|
||||
// We get sporadic internal compiler errors from gcc-7.x when CI testing
|
||||
// that don't appear to be reproducible locally. gcc-6.x and gcc-8.x are fine
|
||||
// so for now it's a <shrug> and move on...
|
||||
#if ! (defined(BOOST_GCC) && (__GNUC__ == 7))
|
||||
|
||||
void foo()
|
||||
{
|
||||
instantiate(test_type());
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
//BOOST_CONCEPT_ASSERT((boost::math::concepts::RealTypeConcept<test_type>));
|
||||
}
|
||||
|
||||
|
||||
47
test/multiprc_concept_check_9.cpp
Normal file
47
test/multiprc_concept_check_9.cpp
Normal file
@@ -0,0 +1,47 @@
|
||||
|
||||
// Copyright John Maddock 2020.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
//
|
||||
// This tests two things: that multiprecision::number meets our
|
||||
// conceptual requirements, and that we can instantiate
|
||||
// all our distributions and special functions on this type.
|
||||
//
|
||||
#define BOOST_MATH_ASSERT_UNDEFINED_POLICY false
|
||||
#define TEST_GROUP_14
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning(disable:4800)
|
||||
# pragma warning(disable:4512)
|
||||
# pragma warning(disable:4127)
|
||||
# pragma warning(disable:4512)
|
||||
# pragma warning(disable:4503) // decorated name length exceeded, name was truncated
|
||||
#endif
|
||||
|
||||
#include <boost/multiprecision/cpp_dec_float.hpp>
|
||||
#include "compile_test/instantiate.hpp"
|
||||
|
||||
using namespace boost::multiprecision;
|
||||
|
||||
typedef number<cpp_dec_float<50>, et_on> test_type;
|
||||
|
||||
// We get sporadic internal compiler errors from gcc-7.x when CI testing
|
||||
// that don't appear to be reproducible locally. gcc-6.x and gcc-8.x are fine
|
||||
// so for now it's a <shrug> and move on...
|
||||
#if ! (defined(BOOST_GCC) && (__GNUC__ == 7))
|
||||
|
||||
void foo()
|
||||
{
|
||||
instantiate(test_type());
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
//BOOST_CONCEPT_ASSERT((boost::math::concepts::RealTypeConcept<test_type>));
|
||||
}
|
||||
|
||||
|
||||
@@ -90,8 +90,8 @@ long double sqrt(long double, void* = 0);
|
||||
|
||||
|
||||
|
||||
#define TEST_GROUP_5
|
||||
#define TEST_GROUP_6
|
||||
#define TEST_GROUP_8
|
||||
#define TEST_GROUP_9
|
||||
#include "compile_test/instantiate.hpp"
|
||||
|
||||
int main()
|
||||
|
||||
Reference in New Issue
Block a user