summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/math/test/test_instances
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/math/test/test_instances')
-rw-r--r--src/boost/libs/math/test/test_instances/Jamfile.v239
-rw-r--r--src/boost/libs/math/test/test_instances/double_test_instances_1.cpp16
-rw-r--r--src/boost/libs/math/test/test_instances/double_test_instances_10.cpp16
-rw-r--r--src/boost/libs/math/test/test_instances/double_test_instances_2.cpp16
-rw-r--r--src/boost/libs/math/test/test_instances/double_test_instances_3.cpp19
-rw-r--r--src/boost/libs/math/test/test_instances/double_test_instances_4.cpp27
-rw-r--r--src/boost/libs/math/test/test_instances/double_test_instances_5.cpp18
-rw-r--r--src/boost/libs/math/test/test_instances/double_test_instances_6.cpp23
-rw-r--r--src/boost/libs/math/test/test_instances/double_test_instances_7.cpp17
-rw-r--r--src/boost/libs/math/test/test_instances/double_test_instances_8.cpp16
-rw-r--r--src/boost/libs/math/test/test_instances/double_test_instances_9.cpp17
-rw-r--r--src/boost/libs/math/test/test_instances/float_test_instances_1.cpp16
-rw-r--r--src/boost/libs/math/test/test_instances/float_test_instances_10.cpp16
-rw-r--r--src/boost/libs/math/test/test_instances/float_test_instances_2.cpp16
-rw-r--r--src/boost/libs/math/test/test_instances/float_test_instances_3.cpp19
-rw-r--r--src/boost/libs/math/test/test_instances/float_test_instances_4.cpp27
-rw-r--r--src/boost/libs/math/test/test_instances/float_test_instances_5.cpp18
-rw-r--r--src/boost/libs/math/test/test_instances/float_test_instances_6.cpp23
-rw-r--r--src/boost/libs/math/test/test_instances/float_test_instances_7.cpp17
-rw-r--r--src/boost/libs/math/test/test_instances/float_test_instances_8.cpp16
-rw-r--r--src/boost/libs/math/test/test_instances/float_test_instances_9.cpp17
-rw-r--r--src/boost/libs/math/test/test_instances/ldouble_test_instances_10.cpp19
-rw-r--r--src/boost/libs/math/test/test_instances/ldouble_test_instances_2.cpp19
-rw-r--r--src/boost/libs/math/test/test_instances/ldouble_test_instances_3.cpp22
-rw-r--r--src/boost/libs/math/test/test_instances/ldouble_test_instances_4.cpp30
-rw-r--r--src/boost/libs/math/test/test_instances/ldouble_test_instances_5.cpp21
-rw-r--r--src/boost/libs/math/test/test_instances/ldouble_test_instances_6.cpp26
-rw-r--r--src/boost/libs/math/test/test_instances/ldouble_test_instances_7.cpp20
-rw-r--r--src/boost/libs/math/test/test_instances/ldouble_test_instances_8.cpp19
-rw-r--r--src/boost/libs/math/test/test_instances/ldouble_test_instances_9.cpp20
-rw-r--r--src/boost/libs/math/test/test_instances/long_double_test_instances_1.cpp19
-rw-r--r--src/boost/libs/math/test/test_instances/pch.hpp10
-rw-r--r--src/boost/libs/math/test/test_instances/real_concept_test_instances_1.cpp22
-rw-r--r--src/boost/libs/math/test/test_instances/real_concept_test_instances_10.cpp22
-rw-r--r--src/boost/libs/math/test/test_instances/real_concept_test_instances_2.cpp22
-rw-r--r--src/boost/libs/math/test/test_instances/real_concept_test_instances_3.cpp25
-rw-r--r--src/boost/libs/math/test/test_instances/real_concept_test_instances_4.cpp33
-rw-r--r--src/boost/libs/math/test/test_instances/real_concept_test_instances_5.cpp24
-rw-r--r--src/boost/libs/math/test/test_instances/real_concept_test_instances_6.cpp29
-rw-r--r--src/boost/libs/math/test/test_instances/real_concept_test_instances_7.cpp23
-rw-r--r--src/boost/libs/math/test/test_instances/real_concept_test_instances_8.cpp22
-rw-r--r--src/boost/libs/math/test/test_instances/real_concept_test_instances_9.cpp23
-rw-r--r--src/boost/libs/math/test/test_instances/test_instances.hpp467
43 files changed, 1346 insertions, 0 deletions
diff --git a/src/boost/libs/math/test/test_instances/Jamfile.v2 b/src/boost/libs/math/test/test_instances/Jamfile.v2
new file mode 100644
index 00000000..d40d28bc
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/Jamfile.v2
@@ -0,0 +1,39 @@
+# Copyright ohn Maddock 2012
+# Distributed under 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.
+
+import pch ;
+
+project
+ : requirements
+ <toolset>acc:<cxxflags>+W2068,2461,2236,4070,4069
+ <toolset>intel-win:<cxxflags>-nologo
+ <toolset>intel-win:<linkflags>-nologo
+ #<toolset>intel-linux:<pch>off
+ <toolset>intel-darwin:<pch>off
+ <toolset>msvc:<warnings>all
+ <toolset>msvc:<asynch-exceptions>on
+ <toolset>msvc:<cxxflags>/wd4996
+ <toolset>msvc:<cxxflags>/wd4511 # copy constructor could not be generated
+ <toolset>msvc:<cxxflags>/wd4512
+ <toolset>msvc:<cxxflags>/wd4610
+ <toolset>msvc:<cxxflags>/wd4510
+ <toolset>msvc:<cxxflags>/wd4127
+ <toolset>msvc:<cxxflags>/wd4701 # needed for lexical cast - temporary.
+ <toolset>msvc:<cxxflags>/wd4189 # local variable is initialized but not referenced
+ <toolset>msvc-7.1:<pch>off
+ <toolset>borland:<runtime-link>static
+ <include>../../../..
+ # For simplicities sake, make everything a static lib:
+ <link>static
+ <define>BOOST_ALL_NO_LIB=1
+ <include>.
+ ;
+
+cpp-pch pch : pch.hpp ;
+
+path-constant here : . ;
+
+lib test_instances : [ GLOB $(here) : *.cpp ] pch
+ : <link>static ;
diff --git a/src/boost/libs/math/test/test_instances/double_test_instances_1.cpp b/src/boost/libs/math/test/test_instances/double_test_instances_1.cpp
new file mode 100644
index 00000000..88502559
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/double_test_instances_1.cpp
@@ -0,0 +1,16 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/beta.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE double
+#define TEST_GROUP_1
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/double_test_instances_10.cpp b/src/boost/libs/math/test/test_instances/double_test_instances_10.cpp
new file mode 100644
index 00000000..4df0e855
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/double_test_instances_10.cpp
@@ -0,0 +1,16 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/jacobi_elliptic.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE double
+#define TEST_GROUP_10
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/double_test_instances_2.cpp b/src/boost/libs/math/test/test_instances/double_test_instances_2.cpp
new file mode 100644
index 00000000..f7e9c3dc
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/double_test_instances_2.cpp
@@ -0,0 +1,16 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/erf.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE double
+#define TEST_GROUP_2
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/double_test_instances_3.cpp b/src/boost/libs/math/test/test_instances/double_test_instances_3.cpp
new file mode 100644
index 00000000..7ed9b56f
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/double_test_instances_3.cpp
@@ -0,0 +1,19 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/legendre.hpp>
+#include <boost/math/special_functions/laguerre.hpp>
+#include <boost/math/special_functions/hermite.hpp>
+#include <boost/math/special_functions/spherical_harmonic.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE double
+#define TEST_GROUP_3
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/double_test_instances_4.cpp b/src/boost/libs/math/test/test_instances/double_test_instances_4.cpp
new file mode 100644
index 00000000..b9f79942
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/double_test_instances_4.cpp
@@ -0,0 +1,27 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/ellint_rf.hpp>
+#include <boost/math/special_functions/ellint_1.hpp>
+#include <boost/math/special_functions/ellint_2.hpp>
+#include <boost/math/special_functions/ellint_3.hpp>
+#include <boost/math/special_functions/ellint_d.hpp>
+#include <boost/math/special_functions/jacobi_zeta.hpp>
+#include <boost/math/special_functions/heuman_lambda.hpp>
+#include <boost/math/special_functions/ellint_rc.hpp>
+#include <boost/math/special_functions/ellint_rf.hpp>
+#include <boost/math/special_functions/ellint_rj.hpp>
+#include <boost/math/special_functions/ellint_rd.hpp>
+#include <boost/math/special_functions/ellint_rg.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE double
+#define TEST_GROUP_4
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/double_test_instances_5.cpp b/src/boost/libs/math/test/test_instances/double_test_instances_5.cpp
new file mode 100644
index 00000000..62dbbe2f
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/double_test_instances_5.cpp
@@ -0,0 +1,18 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/gamma.hpp>
+#include <boost/math/special_functions/digamma.hpp>
+#include <boost/math/special_functions/polygamma.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE double
+#define TEST_GROUP_5
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/double_test_instances_6.cpp b/src/boost/libs/math/test/test_instances/double_test_instances_6.cpp
new file mode 100644
index 00000000..5fc89086
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/double_test_instances_6.cpp
@@ -0,0 +1,23 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/hypot.hpp>
+#include <boost/math/special_functions/cbrt.hpp>
+#include <boost/math/special_functions/log1p.hpp>
+#include <boost/math/special_functions/expm1.hpp>
+#include <boost/math/special_functions/powm1.hpp>
+#include <boost/math/special_functions/sqrt1pm1.hpp>
+#include <boost/math/special_functions/sin_pi.hpp>
+#include <boost/math/special_functions/cos_pi.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE double
+#define TEST_GROUP_6
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/double_test_instances_7.cpp b/src/boost/libs/math/test/test_instances/double_test_instances_7.cpp
new file mode 100644
index 00000000..14d00ba1
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/double_test_instances_7.cpp
@@ -0,0 +1,17 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/bessel.hpp>
+#include <boost/math/special_functions/bessel_prime.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE double
+#define TEST_GROUP_7
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/double_test_instances_8.cpp b/src/boost/libs/math/test/test_instances/double_test_instances_8.cpp
new file mode 100644
index 00000000..727a12e7
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/double_test_instances_8.cpp
@@ -0,0 +1,16 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/airy.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE double
+#define TEST_GROUP_8
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/double_test_instances_9.cpp b/src/boost/libs/math/test/test_instances/double_test_instances_9.cpp
new file mode 100644
index 00000000..e14c85db
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/double_test_instances_9.cpp
@@ -0,0 +1,17 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/expint.hpp>
+#include <boost/math/special_functions/zeta.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE double
+#define TEST_GROUP_9
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/float_test_instances_1.cpp b/src/boost/libs/math/test/test_instances/float_test_instances_1.cpp
new file mode 100644
index 00000000..774e71fe
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/float_test_instances_1.cpp
@@ -0,0 +1,16 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/beta.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE float
+#define TEST_GROUP_1
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/float_test_instances_10.cpp b/src/boost/libs/math/test/test_instances/float_test_instances_10.cpp
new file mode 100644
index 00000000..0afafd3b
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/float_test_instances_10.cpp
@@ -0,0 +1,16 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/jacobi_elliptic.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE float
+#define TEST_GROUP_10
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/float_test_instances_2.cpp b/src/boost/libs/math/test/test_instances/float_test_instances_2.cpp
new file mode 100644
index 00000000..4f969058
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/float_test_instances_2.cpp
@@ -0,0 +1,16 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/erf.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE float
+#define TEST_GROUP_2
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/float_test_instances_3.cpp b/src/boost/libs/math/test/test_instances/float_test_instances_3.cpp
new file mode 100644
index 00000000..6623f7c1
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/float_test_instances_3.cpp
@@ -0,0 +1,19 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/legendre.hpp>
+#include <boost/math/special_functions/laguerre.hpp>
+#include <boost/math/special_functions/hermite.hpp>
+#include <boost/math/special_functions/spherical_harmonic.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE float
+#define TEST_GROUP_3
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/float_test_instances_4.cpp b/src/boost/libs/math/test/test_instances/float_test_instances_4.cpp
new file mode 100644
index 00000000..344354be
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/float_test_instances_4.cpp
@@ -0,0 +1,27 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/ellint_rf.hpp>
+#include <boost/math/special_functions/ellint_1.hpp>
+#include <boost/math/special_functions/ellint_2.hpp>
+#include <boost/math/special_functions/ellint_3.hpp>
+#include <boost/math/special_functions/ellint_d.hpp>
+#include <boost/math/special_functions/jacobi_zeta.hpp>
+#include <boost/math/special_functions/heuman_lambda.hpp>
+#include <boost/math/special_functions/ellint_rc.hpp>
+#include <boost/math/special_functions/ellint_rf.hpp>
+#include <boost/math/special_functions/ellint_rj.hpp>
+#include <boost/math/special_functions/ellint_rd.hpp>
+#include <boost/math/special_functions/ellint_rg.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE float
+#define TEST_GROUP_4
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/float_test_instances_5.cpp b/src/boost/libs/math/test/test_instances/float_test_instances_5.cpp
new file mode 100644
index 00000000..4e2315c0
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/float_test_instances_5.cpp
@@ -0,0 +1,18 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/gamma.hpp>
+#include <boost/math/special_functions/digamma.hpp>
+#include <boost/math/special_functions/polygamma.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE float
+#define TEST_GROUP_5
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/float_test_instances_6.cpp b/src/boost/libs/math/test/test_instances/float_test_instances_6.cpp
new file mode 100644
index 00000000..8d840013
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/float_test_instances_6.cpp
@@ -0,0 +1,23 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/hypot.hpp>
+#include <boost/math/special_functions/cbrt.hpp>
+#include <boost/math/special_functions/log1p.hpp>
+#include <boost/math/special_functions/expm1.hpp>
+#include <boost/math/special_functions/powm1.hpp>
+#include <boost/math/special_functions/sqrt1pm1.hpp>
+#include <boost/math/special_functions/sin_pi.hpp>
+#include <boost/math/special_functions/cos_pi.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE float
+#define TEST_GROUP_6
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/float_test_instances_7.cpp b/src/boost/libs/math/test/test_instances/float_test_instances_7.cpp
new file mode 100644
index 00000000..8d93752d
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/float_test_instances_7.cpp
@@ -0,0 +1,17 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/bessel.hpp>
+#include <boost/math/special_functions/bessel_prime.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE float
+#define TEST_GROUP_7
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/float_test_instances_8.cpp b/src/boost/libs/math/test/test_instances/float_test_instances_8.cpp
new file mode 100644
index 00000000..a0b36a85
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/float_test_instances_8.cpp
@@ -0,0 +1,16 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/airy.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE float
+#define TEST_GROUP_8
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/float_test_instances_9.cpp b/src/boost/libs/math/test/test_instances/float_test_instances_9.cpp
new file mode 100644
index 00000000..e2eb15c3
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/float_test_instances_9.cpp
@@ -0,0 +1,17 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/expint.hpp>
+#include <boost/math/special_functions/zeta.hpp>
+#endif
+
+#define BOOST_MATH_TEST_TYPE float
+#define TEST_GROUP_9
+#include "test_instances.hpp"
+
diff --git a/src/boost/libs/math/test/test_instances/ldouble_test_instances_10.cpp b/src/boost/libs/math/test/test_instances/ldouble_test_instances_10.cpp
new file mode 100644
index 00000000..8e21808e
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/ldouble_test_instances_10.cpp
@@ -0,0 +1,19 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/jacobi_elliptic.hpp>
+#endif
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE long double
+#define TEST_GROUP_10
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/ldouble_test_instances_2.cpp b/src/boost/libs/math/test/test_instances/ldouble_test_instances_2.cpp
new file mode 100644
index 00000000..a49d0ea7
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/ldouble_test_instances_2.cpp
@@ -0,0 +1,19 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/erf.hpp>
+#endif
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE long double
+#define TEST_GROUP_2
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/ldouble_test_instances_3.cpp b/src/boost/libs/math/test/test_instances/ldouble_test_instances_3.cpp
new file mode 100644
index 00000000..9400bbda
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/ldouble_test_instances_3.cpp
@@ -0,0 +1,22 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/legendre.hpp>
+#include <boost/math/special_functions/laguerre.hpp>
+#include <boost/math/special_functions/hermite.hpp>
+#include <boost/math/special_functions/spherical_harmonic.hpp>
+#endif
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE long double
+#define TEST_GROUP_3
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/ldouble_test_instances_4.cpp b/src/boost/libs/math/test/test_instances/ldouble_test_instances_4.cpp
new file mode 100644
index 00000000..f7ba9783
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/ldouble_test_instances_4.cpp
@@ -0,0 +1,30 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/ellint_rf.hpp>
+#include <boost/math/special_functions/ellint_1.hpp>
+#include <boost/math/special_functions/ellint_2.hpp>
+#include <boost/math/special_functions/ellint_3.hpp>
+#include <boost/math/special_functions/ellint_d.hpp>
+#include <boost/math/special_functions/jacobi_zeta.hpp>
+#include <boost/math/special_functions/heuman_lambda.hpp>
+#include <boost/math/special_functions/ellint_rc.hpp>
+#include <boost/math/special_functions/ellint_rf.hpp>
+#include <boost/math/special_functions/ellint_rj.hpp>
+#include <boost/math/special_functions/ellint_rd.hpp>
+#include <boost/math/special_functions/ellint_rg.hpp>
+#endif
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE long double
+#define TEST_GROUP_4
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/ldouble_test_instances_5.cpp b/src/boost/libs/math/test/test_instances/ldouble_test_instances_5.cpp
new file mode 100644
index 00000000..6e4599b6
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/ldouble_test_instances_5.cpp
@@ -0,0 +1,21 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/gamma.hpp>
+#include <boost/math/special_functions/digamma.hpp>
+#include <boost/math/special_functions/polygamma.hpp>
+#endif
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE long double
+#define TEST_GROUP_5
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/ldouble_test_instances_6.cpp b/src/boost/libs/math/test/test_instances/ldouble_test_instances_6.cpp
new file mode 100644
index 00000000..c56695fe
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/ldouble_test_instances_6.cpp
@@ -0,0 +1,26 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/hypot.hpp>
+#include <boost/math/special_functions/cbrt.hpp>
+#include <boost/math/special_functions/log1p.hpp>
+#include <boost/math/special_functions/expm1.hpp>
+#include <boost/math/special_functions/powm1.hpp>
+#include <boost/math/special_functions/sqrt1pm1.hpp>
+#include <boost/math/special_functions/sin_pi.hpp>
+#include <boost/math/special_functions/cos_pi.hpp>
+#endif
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE long double
+#define TEST_GROUP_6
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/ldouble_test_instances_7.cpp b/src/boost/libs/math/test/test_instances/ldouble_test_instances_7.cpp
new file mode 100644
index 00000000..a358fbd2
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/ldouble_test_instances_7.cpp
@@ -0,0 +1,20 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/bessel.hpp>
+#include <boost/math/special_functions/bessel_prime.hpp>
+#endif
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE long double
+#define TEST_GROUP_7
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/ldouble_test_instances_8.cpp b/src/boost/libs/math/test/test_instances/ldouble_test_instances_8.cpp
new file mode 100644
index 00000000..98c70334
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/ldouble_test_instances_8.cpp
@@ -0,0 +1,19 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/airy.hpp>
+#endif
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE long double
+#define TEST_GROUP_8
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/ldouble_test_instances_9.cpp b/src/boost/libs/math/test/test_instances/ldouble_test_instances_9.cpp
new file mode 100644
index 00000000..e212c7d5
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/ldouble_test_instances_9.cpp
@@ -0,0 +1,20 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/expint.hpp>
+#include <boost/math/special_functions/zeta.hpp>
+#endif
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE long double
+#define TEST_GROUP_9
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/long_double_test_instances_1.cpp b/src/boost/libs/math/test/test_instances/long_double_test_instances_1.cpp
new file mode 100644
index 00000000..a312ae08
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/long_double_test_instances_1.cpp
@@ -0,0 +1,19 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/beta.hpp>
+#endif
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE long double
+#define TEST_GROUP_1
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/pch.hpp b/src/boost/libs/math/test/test_instances/pch.hpp
new file mode 100644
index 00000000..827a3196
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/pch.hpp
@@ -0,0 +1,10 @@
+// Copyright John Maddock 2012.
+// 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)
+
+#ifdef BOOST_BUILD_PCH_ENABLED
+
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions.hpp>
+#endif
diff --git a/src/boost/libs/math/test/test_instances/real_concept_test_instances_1.cpp b/src/boost/libs/math/test/test_instances/real_concept_test_instances_1.cpp
new file mode 100644
index 00000000..76b1a7bb
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/real_concept_test_instances_1.cpp
@@ -0,0 +1,22 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/beta.hpp>
+#endif
+
+#include <boost/math/tools/config.hpp>
+#include <boost/math/concepts/real_concept.hpp>
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE boost::math::concepts::real_concept
+#define TEST_GROUP_1
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/real_concept_test_instances_10.cpp b/src/boost/libs/math/test/test_instances/real_concept_test_instances_10.cpp
new file mode 100644
index 00000000..e356b046
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/real_concept_test_instances_10.cpp
@@ -0,0 +1,22 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/jacobi_elliptic.hpp>
+#endif
+
+#include <boost/math/tools/config.hpp>
+#include <boost/math/concepts/real_concept.hpp>
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE boost::math::concepts::real_concept
+#define TEST_GROUP_10
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/real_concept_test_instances_2.cpp b/src/boost/libs/math/test/test_instances/real_concept_test_instances_2.cpp
new file mode 100644
index 00000000..6cb2ecc9
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/real_concept_test_instances_2.cpp
@@ -0,0 +1,22 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/erf.hpp>
+#endif
+
+#include <boost/math/tools/config.hpp>
+#include <boost/math/concepts/real_concept.hpp>
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE boost::math::concepts::real_concept
+#define TEST_GROUP_2
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/real_concept_test_instances_3.cpp b/src/boost/libs/math/test/test_instances/real_concept_test_instances_3.cpp
new file mode 100644
index 00000000..aa6cf8fb
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/real_concept_test_instances_3.cpp
@@ -0,0 +1,25 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/legendre.hpp>
+#include <boost/math/special_functions/laguerre.hpp>
+#include <boost/math/special_functions/hermite.hpp>
+#include <boost/math/special_functions/spherical_harmonic.hpp>
+#endif
+
+#include <boost/math/tools/config.hpp>
+#include <boost/math/concepts/real_concept.hpp>
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE boost::math::concepts::real_concept
+#define TEST_GROUP_3
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/real_concept_test_instances_4.cpp b/src/boost/libs/math/test/test_instances/real_concept_test_instances_4.cpp
new file mode 100644
index 00000000..63c907e6
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/real_concept_test_instances_4.cpp
@@ -0,0 +1,33 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/ellint_rf.hpp>
+#include <boost/math/special_functions/ellint_1.hpp>
+#include <boost/math/special_functions/ellint_2.hpp>
+#include <boost/math/special_functions/ellint_3.hpp>
+#include <boost/math/special_functions/ellint_d.hpp>
+#include <boost/math/special_functions/jacobi_zeta.hpp>
+#include <boost/math/special_functions/heuman_lambda.hpp>
+#include <boost/math/special_functions/ellint_rc.hpp>
+#include <boost/math/special_functions/ellint_rf.hpp>
+#include <boost/math/special_functions/ellint_rj.hpp>
+#include <boost/math/special_functions/ellint_rd.hpp>
+#include <boost/math/special_functions/ellint_rg.hpp>
+#endif
+
+#include <boost/math/tools/config.hpp>
+#include <boost/math/concepts/real_concept.hpp>
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE boost::math::concepts::real_concept
+#define TEST_GROUP_4
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/real_concept_test_instances_5.cpp b/src/boost/libs/math/test/test_instances/real_concept_test_instances_5.cpp
new file mode 100644
index 00000000..6dd7d043
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/real_concept_test_instances_5.cpp
@@ -0,0 +1,24 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/gamma.hpp>
+#include <boost/math/special_functions/digamma.hpp>
+#include <boost/math/special_functions/polygamma.hpp>
+#endif
+
+#include <boost/math/tools/config.hpp>
+#include <boost/math/concepts/real_concept.hpp>
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE boost::math::concepts::real_concept
+#define TEST_GROUP_5
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/real_concept_test_instances_6.cpp b/src/boost/libs/math/test/test_instances/real_concept_test_instances_6.cpp
new file mode 100644
index 00000000..18137510
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/real_concept_test_instances_6.cpp
@@ -0,0 +1,29 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/hypot.hpp>
+#include <boost/math/special_functions/cbrt.hpp>
+#include <boost/math/special_functions/log1p.hpp>
+#include <boost/math/special_functions/expm1.hpp>
+#include <boost/math/special_functions/powm1.hpp>
+#include <boost/math/special_functions/sqrt1pm1.hpp>
+#include <boost/math/special_functions/sin_pi.hpp>
+#include <boost/math/special_functions/cos_pi.hpp>
+#endif
+
+#include <boost/math/tools/config.hpp>
+#include <boost/math/concepts/real_concept.hpp>
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE boost::math::concepts::real_concept
+#define TEST_GROUP_6
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/real_concept_test_instances_7.cpp b/src/boost/libs/math/test/test_instances/real_concept_test_instances_7.cpp
new file mode 100644
index 00000000..dd53dfec
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/real_concept_test_instances_7.cpp
@@ -0,0 +1,23 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/bessel.hpp>
+#include <boost/math/special_functions/bessel_prime.hpp>
+#endif
+
+#include <boost/math/tools/config.hpp>
+#include <boost/math/concepts/real_concept.hpp>
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE boost::math::concepts::real_concept
+#define TEST_GROUP_7
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/real_concept_test_instances_8.cpp b/src/boost/libs/math/test/test_instances/real_concept_test_instances_8.cpp
new file mode 100644
index 00000000..ff03f4d2
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/real_concept_test_instances_8.cpp
@@ -0,0 +1,22 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/airy.hpp>
+#endif
+
+#include <boost/math/tools/config.hpp>
+#include <boost/math/concepts/real_concept.hpp>
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE boost::math::concepts::real_concept
+#define TEST_GROUP_8
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/real_concept_test_instances_9.cpp b/src/boost/libs/math/test/test_instances/real_concept_test_instances_9.cpp
new file mode 100644
index 00000000..05ac1f77
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/real_concept_test_instances_9.cpp
@@ -0,0 +1,23 @@
+// Copyright John Maddock 2011.
+// 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)
+
+#include "pch.hpp"
+
+#ifndef BOOST_BUILD_PCH_ENABLED
+#define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
+#include <boost/math/special_functions/expint.hpp>
+#include <boost/math/special_functions/zeta.hpp>
+#endif
+
+#include <boost/math/tools/config.hpp>
+#include <boost/math/concepts/real_concept.hpp>
+
+#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
+
+#define BOOST_MATH_TEST_TYPE boost::math::concepts::real_concept
+#define TEST_GROUP_9
+#include "test_instances.hpp"
+
+#endif
diff --git a/src/boost/libs/math/test/test_instances/test_instances.hpp b/src/boost/libs/math/test/test_instances/test_instances.hpp
new file mode 100644
index 00000000..e9aef129
--- /dev/null
+++ b/src/boost/libs/math/test/test_instances/test_instances.hpp
@@ -0,0 +1,467 @@
+// Copyright John Maddock 2011.
+// 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)
+
+
+namespace boost{ namespace math{
+
+ typedef policies::policy<policies::overflow_error<policies::throw_on_error> > overflow_policy;
+
+#ifdef TEST_GROUP_1
+
+ // Beta functions.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ beta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b); // Beta function (2 arguments).
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ beta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, policies::policy<>); // Beta function (3 arguments).
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ beta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE); // Beta function (3 arguments).
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ beta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol); // Beta function (3 arguments).
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ betac(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ betac(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x); // Incomplete beta function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol); // Incomplete beta function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x); // Incomplete beta complement function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol); // Incomplete beta complement function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p, BOOST_MATH_TEST_TYPE* py);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p, BOOST_MATH_TEST_TYPE* py, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p, const policies::policy<>&); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p, const policies::policy<>&); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_invb(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_invb(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p, const policies::policy<>&); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q, BOOST_MATH_TEST_TYPE* py);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q, BOOST_MATH_TEST_TYPE* py, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q, const policies::policy<>&); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q, const policies::policy<>&); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_invb(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_invb(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q, const policies::policy<>&); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_derivative(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x); // derivative of incomplete beta
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_derivative(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol); // derivative of incomplete beta
+
+#endif
+#ifdef TEST_GROUP_2
+ // erf & erfc error functions.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erf(BOOST_MATH_TEST_TYPE z);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erf(BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erfc(BOOST_MATH_TEST_TYPE z);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erfc(BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erf_inv(BOOST_MATH_TEST_TYPE z);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erf_inv(BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erfc_inv(BOOST_MATH_TEST_TYPE z);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erfc_inv(BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+#endif
+#ifdef TEST_GROUP_3
+ // Polynomials:
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ legendre_next(unsigned l, BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE Pl, BOOST_MATH_TEST_TYPE Plm1);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_p(int l, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_p(int l, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_q(unsigned l, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_q(unsigned l, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ legendre_next(unsigned l, unsigned m, BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE Pl, BOOST_MATH_TEST_TYPE Plm1);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_p(int l, int m, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_p(int l, int m, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ laguerre_next(unsigned n, BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE Ln, BOOST_MATH_TEST_TYPE Lnm1);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ laguerre_next(unsigned n, unsigned l, BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE Pl, BOOST_MATH_TEST_TYPE Plm1);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ laguerre(unsigned n, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ laguerre(unsigned n, unsigned m, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template laguerre_result<int, BOOST_MATH_TEST_TYPE>::type
+ laguerre(unsigned n, int m, BOOST_MATH_TEST_TYPE x);
+
+ template laguerre_result<unsigned, BOOST_MATH_TEST_TYPE>::type
+ laguerre(unsigned n, unsigned m, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ hermite(unsigned n, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ hermite(unsigned n, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ hermite_next(unsigned n, BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE Hn, BOOST_MATH_TEST_TYPE Hnm1);
+
+ template std::complex<BOOST_MATH_TEST_TYPE>
+ spherical_harmonic(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi);
+
+ template std::complex<BOOST_MATH_TEST_TYPE>
+ spherical_harmonic(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ spherical_harmonic_r(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ spherical_harmonic_r(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ spherical_harmonic_i(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ spherical_harmonic_i(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+#endif
+#ifdef TEST_GROUP_4
+ // Elliptic integrals:
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rf(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rf(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rd(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rd(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rc(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rc(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rj(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z, BOOST_MATH_TEST_TYPE p);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rj(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z, BOOST_MATH_TEST_TYPE p, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rg(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rg(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type ellint_2(BOOST_MATH_TEST_TYPE k);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_2(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_2(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type ellint_d(BOOST_MATH_TEST_TYPE k);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_d(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_d(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_zeta(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_zeta(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type heuman_lambda(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type heuman_lambda(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type ellint_1(BOOST_MATH_TEST_TYPE k);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_1(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_1(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template detail::ellint_3_result<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_3(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_3(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_3(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE v);
+#endif
+#ifdef TEST_GROUP_5
+ // Gamma functions.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type tgamma(BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type tgamma1pm1(BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type tgamma1pm1(BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type lgamma(BOOST_MATH_TEST_TYPE z, int* sign);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type lgamma(BOOST_MATH_TEST_TYPE z, int* sign, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type lgamma(BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type lgamma(BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_lower(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_lower(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_delta_ratio(BOOST_MATH_TEST_TYPE z, BOOST_MATH_TEST_TYPE delta);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_delta_ratio(BOOST_MATH_TEST_TYPE z, BOOST_MATH_TEST_TYPE delta, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_ratio(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_ratio(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_derivative(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_derivative(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE x, const policies::policy<>&);
+
+ // gamma inverse.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE p);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE p, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE p);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE p, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE q);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE q, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE q);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE q, const policies::policy<>&);
+
+ // digamma:
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type digamma(BOOST_MATH_TEST_TYPE x);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type digamma(BOOST_MATH_TEST_TYPE x, const policies::policy<>&);
+ // trigamma:
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type trigamma(BOOST_MATH_TEST_TYPE x);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type trigamma(BOOST_MATH_TEST_TYPE x, const policies::policy<>&);
+ // polygamma:
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type polygamma(int, BOOST_MATH_TEST_TYPE x);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type polygamma(int, BOOST_MATH_TEST_TYPE x, const policies::policy<>&);
+#endif
+#ifdef TEST_GROUP_6
+ // Hypotenuse function sqrt(x ^ 2 + y ^ 2).
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ hypot(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ hypot(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, const policies::policy<>&);
+
+ // cbrt - cube root.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type cbrt(BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type cbrt(BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ // log1p is log(x + 1)
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1p(BOOST_MATH_TEST_TYPE);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1p(BOOST_MATH_TEST_TYPE, const policies::policy<>&);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1p<BOOST_MATH_TEST_TYPE, overflow_policy>(BOOST_MATH_TEST_TYPE, const overflow_policy&);
+
+ // log1pmx is log(x + 1) - x
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1pmx(BOOST_MATH_TEST_TYPE);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1pmx(BOOST_MATH_TEST_TYPE, const policies::policy<>&);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1pmx(BOOST_MATH_TEST_TYPE, const overflow_policy&);
+
+ // Exp (x) minus 1 functions.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type expm1(BOOST_MATH_TEST_TYPE);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type expm1(BOOST_MATH_TEST_TYPE, const policies::policy<>&);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type expm1(BOOST_MATH_TEST_TYPE, const overflow_policy&);
+
+ // Power - 1
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ powm1(const BOOST_MATH_TEST_TYPE a, const BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ powm1(const BOOST_MATH_TEST_TYPE a, const BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ // sqrt(1+x) - 1
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type sqrt1pm1(const BOOST_MATH_TEST_TYPE& val);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type sqrt1pm1(const BOOST_MATH_TEST_TYPE& val, const policies::policy<>&);
+
+ // sin_pi, cos_pi
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type sin_pi(const BOOST_MATH_TEST_TYPE val);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type sin_pi(const BOOST_MATH_TEST_TYPE val, const policies::policy<>&);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type cos_pi(const BOOST_MATH_TEST_TYPE val);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type cos_pi(const BOOST_MATH_TEST_TYPE val, const policies::policy<>&);
+#endif
+#ifdef TEST_GROUP_7
+ // Bessel functions:
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_j(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_j_prime(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_j(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_j_prime(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<int, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_j(int v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<int, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_j_prime(int v, BOOST_MATH_TEST_TYPE x);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type sph_bessel(unsigned v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type sph_bessel_prime(unsigned v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type sph_bessel(unsigned v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type sph_bessel_prime(unsigned v, BOOST_MATH_TEST_TYPE x);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_i(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_i_prime(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_i(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_i_prime(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<int, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_i(int v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<int, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_i_prime(int v, BOOST_MATH_TEST_TYPE x);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_k(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_k_prime(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_k(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_k_prime(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<int, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_k(int v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<int, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_k_prime(int v, BOOST_MATH_TEST_TYPE x);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_neumann(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_neumann_prime(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_neumann(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_neumann_prime(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<int, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_neumann(int v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<int, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_neumann_prime(int v, BOOST_MATH_TEST_TYPE x);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type sph_neumann(unsigned v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type sph_neumann_prime(unsigned v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type sph_neumann(unsigned v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type sph_neumann_prime(unsigned v, BOOST_MATH_TEST_TYPE x);
+#endif
+#ifdef TEST_GROUP_8
+ // Airy Functions:
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type airy_ai(BOOST_MATH_TEST_TYPE x, const policies::policy<>&);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type airy_ai(BOOST_MATH_TEST_TYPE x);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type airy_bi(BOOST_MATH_TEST_TYPE x, const policies::policy<>&);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type airy_bi(BOOST_MATH_TEST_TYPE x);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type airy_ai_prime(BOOST_MATH_TEST_TYPE x, const policies::policy<>&);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type airy_ai_prime(BOOST_MATH_TEST_TYPE x);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type airy_bi_prime(BOOST_MATH_TEST_TYPE x, const policies::policy<>&);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type airy_bi_prime(BOOST_MATH_TEST_TYPE x);
+#endif
+#ifdef TEST_GROUP_9
+ // Exponential Integral
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type expint(unsigned n, BOOST_MATH_TEST_TYPE z, const policies::policy<> &);
+
+ template detail::expint_result<int, BOOST_MATH_TEST_TYPE>::type expint(int const z, BOOST_MATH_TEST_TYPE const u);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type expint(BOOST_MATH_TEST_TYPE z);
+
+ // Zeta:
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type zeta(BOOST_MATH_TEST_TYPE s, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type zeta(BOOST_MATH_TEST_TYPE s);
+#endif
+#ifdef TEST_GROUP_10
+ // Jacobi Functions:
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type jacobi_elliptic(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE* pcn, BOOST_MATH_TEST_TYPE* pdn, const policies::policy<>&);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type jacobi_elliptic(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE* pcn, BOOST_MATH_TEST_TYPE* pdn);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_sn(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta, const policies::policy<>& pol);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_sn(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_cn(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta, const policies::policy<>& pol);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_cn(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_dn(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta, const policies::policy<>& pol);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_dn(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_cd(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta, const policies::policy<>& pol);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_cd(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_dc(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta, const policies::policy<>& pol);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_dc(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_ns(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta, const policies::policy<>& pol);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_ns(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_sd(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta, const policies::policy<>& pol);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_sd(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_ds(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta, const policies::policy<>& pol);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_ds(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_nc(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta, const policies::policy<>& pol);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_nc(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_nd(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta, const policies::policy<>& pol);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_nd(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_sc(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta, const policies::policy<>& pol);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_sc(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_cs(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta, const policies::policy<>& pol);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type jacobi_cs(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE theta);
+#endif
+
+}} // namespaces