Add support for modular build structure. (#1160)

* Make the library modular usable.

* Fix -Wundef warnings

* Switch to library requirements instead of source. As source puts extra source in install targets.

* Add missing NO_LIB usage requirements.

* Remove boost-root relative include path.

* Add missing import-search for cconfig/predef checks.

* Add requires-b2 check to top-level build file.

* Sync upstream.

* Fix typo in test framework reference.

* Bump B2 require to 5.2

* Update copyright dates.

* Move inter-lib dependencies to a project variable and into the build targets.

* Switch to /boost/test//included target for header only mode of Boost.Test.

* Adjust doc build to avoid boost-root references.

* Update build deps.

* Fix project props not applying to the no_eh.obj compile.

* Update build deps.

* Add missing import-search.

* Fix float128_type checks to actually disable tests. Problem was that build is a non-free feature. Which can't be acquired through a usage requirement.

* GPU Batch 7

Fix igamma_large support on device

Add GPU support to toms748

Add GPU support to igamma_inv

Add GPU markers to gamma_inva

Add GPU Markers to lgamma_small

Remove STL usage from gamma

Remove NVRTC workaround

Fix fraction use of STL headers

Mark gamma functions in fwd

Disable declval on all GPU platforms

Disable more unneeded code on device

Add forward decl for NVRTC tgamma

Disable unneeded items for all GPU

Change workaround for missing overloads

Rearrange definition location

Add include path to cuda now that workaround is removed

Fix NVRTC incompatibility with recursion and forward decls

Add tgamma_ratio CUDA and NVRTC testing

Fix NVRTC handling of gamma_p_derivative

Add gamma_p_derivative CUDA and NVRTC testing

Remove recursion from gamma_incomplete_imp

Add SYCL testing of igamma, igamma_inv, and igamma_inva

Ignore literal-range warnings

Remove use of static const char* for function name

Fix missing CUDA header

Remove calls under NVRTC to fwd decl

Add more nvrtc workarounds

Use builtin erfc instead of header cycle

Add CUDA and NVRTC testing of gamma_p_inv

Adjust tolerances

Add GPU support to chi squared dist

Fix static local variable

Add chi squared dist SYCL testing

Add chi squared dist CUDA testing

Add chi squared dist NVRTC testing

Add GPU support to weibull dist

Add weibull dist SYCL testing

Add weibull dist CUDA testing

Add weibull dist NVRTC testing

* Fix policy macro definition for MSVC platforms

* Don't add quadmath lib for has_128bit_floatmax_t check. It was accidentally copy+pasted.

* Fix incorrect name for float128 type check that caused it to not apear.

---------

Co-authored-by: Matt Borland <matt@mattborland.com>
This commit is contained in:
René Ferdinand Rivera Morell 2024-09-06 07:45:23 -05:00 committed by GitHub
parent ab57b2093e
commit 41f07b0794
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
44 changed files with 832 additions and 759 deletions

48
build.jam Normal file
View File

@ -0,0 +1,48 @@
# Copyright René Ferdinand Rivera Morell 2023-2024
# 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)
require-b2 5.2 ;
constant boost_dependencies :
/boost/assert//boost_assert
/boost/concept_check//boost_concept_check
/boost/config//boost_config
/boost/core//boost_core
/boost/integer//boost_integer
/boost/lexical_cast//boost_lexical_cast
/boost/predef//boost_predef
/boost/random//boost_random
/boost/static_assert//boost_static_assert
/boost/throw_exception//boost_throw_exception ;
project /boost/math
: common-requirements
<include>include
;
explicit
[ alias boost_math : : : : <library>$(boost_dependencies) ]
[ alias boost_math_c99 : build//boost_math_c99 ]
[ alias boost_math_c99f : build//boost_math_c99f ]
[ alias boost_math_c99l : build//boost_math_c99l ]
[ alias boost_math_tr1 : build//boost_math_tr1 ]
[ alias boost_math_tr1f : build//boost_math_tr1f ]
[ alias boost_math_tr1l : build//boost_math_tr1l ]
[ alias all :
boost_math
boost_math_c99 boost_math_c99f boost_math_c99l
boost_math_tr1 boost_math_tr1f boost_math_tr1l
example test ]
[ alias testing : : : :
<include>test
<include>include_private ]
;
call-if : boost-library math
: install boost_math
boost_math_c99 boost_math_c99f boost_math_c99l
boost_math_tr1 boost_math_tr1f boost_math_tr1l
;

View File

@ -1,16 +1,18 @@
# copyright John Maddock 2008
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# 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 testing ;
import pch ;
import ../../config/checks/config : requires ;
import-search /boost/config/checks ;
import config : requires ;
project
: requirements
<toolset>intel-win:<cxxflags>-nologo
<toolset>intel-win:<linkflags>-nologo
project
: common-requirements <library>$(boost_dependencies)
: requirements
<toolset>intel-win:<cxxflags>-nologo
<toolset>intel-win:<linkflags>-nologo
#<toolset>intel-linux:<pch>off
<toolset>intel-darwin:<pch>off
<toolset>gcc,<target-os>windows:<pch>off
@ -20,9 +22,11 @@ project
[ check-target-builds ../config//has_gcc_visibility "gcc visibility" : <toolset>gcc:<cxxflags>-fvisibility=hidden : ]
[ requires cxx11_noexcept cxx11_rvalue_references sfinae_expr cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_tuple cxx11_hdr_initializer_list cxx11_hdr_chrono cxx11_thread_local cxx11_constexpr cxx11_nullptr cxx11_numeric_limits cxx11_decltype cxx11_hdr_array cxx11_hdr_atomic cxx11_hdr_type_traits cxx11_allocator cxx11_explicit_conversion_operators ]
[ requires cxx14_decltype_auto cxx14_generic_lambdas cxx14_return_type_deduction cxx14_variable_templates cxx14_decltype_auto cxx14_generic_lambdas cxx14_return_type_deduction ]
: usage-requirements
<define>BOOST_MATH_TR1_NO_LIB=1
;
cpp-pch pch : ../src/tr1/pch.hpp : <include>../src/tr1 <link>shared:<define>BOOST_MATH_TR1_DYN_LINK=1 ;
cpp-pch pch : ../src/tr1/pch.hpp : <include>../src/tr1 <link>shared:<define>BOOST_MATH_TR1_DYN_LINK=1 ;
C99_SOURCES = acosh
asinh
@ -46,7 +50,7 @@ round
tgamma
trunc ;
TR1_SOURCES =
TR1_SOURCES =
assoc_laguerre
assoc_legendre
beta
@ -80,22 +84,22 @@ import targets ;
obj long_double_check : ../config/has_long_double_support.cpp ;
explicit long_double_check ;
# Library targets
lib boost_math_tr1 : ../src/tr1/$(TR1_SOURCES).cpp pch
:
:
<link>shared:<define>BOOST_MATH_TR1_DYN_LINK=1
<include>../src/tr1
;
lib boost_math_tr1f : ../src/tr1/$(TR1_SOURCES)f.cpp pch
:
:
<link>shared:<define>BOOST_MATH_TR1_DYN_LINK=1
<include>../src/tr1
;
lib boost_math_tr1l : ../src/tr1/$(TR1_SOURCES)l.cpp pch
:
:
<link>shared:<define>BOOST_MATH_TR1_DYN_LINK=1
<dependency>../config//has_long_double_support
<include>../src/tr1
@ -103,23 +107,21 @@ lib boost_math_tr1l : ../src/tr1/$(TR1_SOURCES)l.cpp pch
;
lib boost_math_c99 : ../src/tr1/$(C99_SOURCES).cpp pch
:
:
<link>shared:<define>BOOST_MATH_TR1_DYN_LINK=1
<include>../src/tr1
;
lib boost_math_c99f : ../src/tr1/$(C99_SOURCES)f.cpp pch
:
:
<link>shared:<define>BOOST_MATH_TR1_DYN_LINK=1
<include>../src/tr1
;
lib boost_math_c99l : ../src/tr1/$(C99_SOURCES)l.cpp pch
:
:
<link>shared:<define>BOOST_MATH_TR1_DYN_LINK=1
<dependency>../config//has_long_double_support
<include>../src/tr1
[ check-target-builds ../config//has_long_double_support "long double support" : : <build>no ]
;
boost-install boost_math_c99 boost_math_c99f boost_math_c99l boost_math_tr1 boost_math_tr1f boost_math_tr1l ;

View File

@ -9,11 +9,11 @@ import path ;
local ntl-path = [ modules.peek : NTL_PATH ] ;
local gmp_path = [ modules.peek : GMP_PATH ] ;
lib quadmath ;
lib fftw3 ;
lib fftw3f ;
lib fftw3l ;
lib fftw3q ;
searched-lib quadmath ;
searched-lib fftw3 ;
searched-lib fftw3f ;
searched-lib fftw3l ;
searched-lib fftw3q ;
obj has_long_double_support : has_long_double_support.cpp ;
obj has_mpfr_class : has_mpfr_class.cpp :

View File

@ -13,7 +13,7 @@ path-constant here : . ;
constant here-url : [ regex.replace $(here) "\\\\" "/" ] ;
xml math : math.qbk :
<quickbook-define>enable_index
<quickbook-define>enable_index
<quickbook-define>__base_path__=$(here-url)
<format>pdf:<quickbook-define>__build_pdf
<format>html:<quickbook-define>__build_html
@ -25,7 +25,7 @@ boostbook standalone
# Path for links to Boost:
<xsl:param>boost.root=../../../..
<xsl:param>html.stylesheet=math.css
# Some general style settings:
<xsl:param>table.footnote.number.format=1
<xsl:param>footnote.number.format=1
@ -46,11 +46,11 @@ boostbook standalone
# Index on type:
<xsl:param>index.on.type=1
<xsl:param>boost.noexpand.chapter.toc=1
#<xsl:param>root.filename="sf_dist_and_tools"
#<xsl:param>graphicsize.extension=1
#<xsl:param>use.extensions=1
# PDF Options:
# TOC Generation: this is needed for FOP-0.9 and later:
<xsl:param>fop1.extensions=0
@ -74,7 +74,7 @@ boostbook standalone
# better use SVG's instead:
<format>pdf:<xsl:param>admon.graphics.extension=".svg"
<format>pdf:<xsl:param>admon.graphics.path=$(here)/../../../doc/src/images/
<format>pdf:<xsl:param>use.role.for.mediaobject=1
<format>pdf:<xsl:param>use.role.for.mediaobject=1
<format>pdf:<xsl:param>preferred.mediaobject.role=print
<format>pdf:<xsl:param>img.src.path=$(images_location)/
<format>pdf:<xsl:param>draft.mode="no"
@ -82,7 +82,7 @@ boostbook standalone
<auto-index>on <format>pdf:<auto-index-internal>off
<format>html:<auto-index-internal>on
<auto-index-script>$(here)/index.idx
<auto-index-prefix>$(here)/../../..
<auto-index-prefix>$(here)/../include
#<auto-index-verbose>on
<format>pdf:<xsl:param>index.on.type=1
;
@ -90,7 +90,7 @@ boostbook standalone
install pdfinstall : standalone/<format>pdf : <location>. <install-type>PDF <name>math.pdf ;
explicit pdfinstall ; # b2 pdf pdfinstall to do this pdf file copy.
install css_install : math.css : <location>$(here)/html ;
install css_install : math.css : <location>$(here)/html ;
###############################################################################
alias boostdoc ;

View File

@ -7,10 +7,13 @@
# bring in the rules for testing
import testing ;
import ../../config/checks/config : requires ;
import-search /boost/config/checks ;
import config : requires ;
project
: requirements
<library>/boost/math//boost_math
<library>/boost/multiprecision//boost_multiprecision
<toolset>gcc:<cxxflags>-Wno-missing-braces
<toolset>darwin:<cxxflags>-Wno-missing-braces
<toolset>acc:<cxxflags>+W2068,2461,2236,4070
@ -36,7 +39,6 @@ project
<toolset>clang:<cxxflags>-Wno-unknown-pragmas
<toolset>clang:<cxxflags>-Wno-language-extension-token
<include>../../..
<include>../include_private
<exception-handling>off:<source>../test//no_eh
[ requires cxx11_noexcept cxx11_rvalue_references sfinae_expr cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_tuple cxx11_hdr_initializer_list cxx11_hdr_chrono cxx11_thread_local cxx11_constexpr cxx11_nullptr cxx11_numeric_limits cxx11_decltype cxx11_hdr_array cxx11_hdr_atomic cxx11_hdr_type_traits cxx11_allocator cxx11_explicit_conversion_operators ]
@ -53,7 +55,7 @@ test-suite examples :
[ run binomial_example_nag.cpp ]
[ run binomial_quiz_example.cpp : : : <exception-handling>off:<build>no ]
[ run binomial_sample_sizes.cpp ]
[ run brent_minimise_example.cpp : : : [ requires cxx11_hdr_tuple ] ]
[ run brent_minimise_example.cpp /boost/test//included : : : [ requires cxx11_hdr_tuple ] ]
[ run c_error_policy_example.cpp ]
[ run chi_square_std_dev_test.cpp : : : <exception-handling>off:<build>no ]
@ -93,11 +95,11 @@ test-suite examples :
[ run nonfinite_num_facet.cpp ]
[ run nonfinite_facet_simple.cpp ]
#[ run nonfinite_num_facet_serialization.cpp ../../serialization/build//boost_serialization : : : <exception-handling>off:<build>no <toolset>gcc-mingw:<link>static ]
#[ run nonfinite_num_facet_serialization.cpp /boost/serialization//boost_serialization : : : <exception-handling>off:<build>no <toolset>gcc-mingw:<link>static ]
#[ # run lexical_cast_native.cpp ] # Expected to fail on some (but not all) platforms.
[ run lexical_cast_nonfinite_facets.cpp ]
[ run nonfinite_loopback_ok.cpp ]
#[ run nonfinite_serialization_archives.cpp ../../serialization/build//boost_serialization : : : <exception-handling>off:<build>no <toolset>gcc-mingw:<link>static ]
#[ run nonfinite_serialization_archives.cpp /boost/serialization//boost_serialization : : : <exception-handling>off:<build>no <toolset>gcc-mingw:<link>static ]
[ run nonfinite_facet_sstream.cpp ]
[ run constants_eg1.cpp ]
@ -113,7 +115,7 @@ test-suite examples :
[ run policy_eg_6.cpp ]
[ run policy_eg_7.cpp ]
[ run policy_eg_8.cpp ]
[ run policy_eg_9.cpp ]
[ run policy_eg_9.cpp /boost/format//boost_format ]
[ run policy_ref_snip1.cpp : : : <exception-handling>off:<build>no ]
[ run policy_ref_snip10.cpp ]
[ run policy_ref_snip11.cpp ]

View File

@ -12,7 +12,8 @@ import testing ;
import modules ;
import path ;
import pch ;
import ../../../config/checks/config : requires ;
import-search /boost/config/checks ;
import config : requires ;
using quickbook ;
using auto-index ;
@ -47,16 +48,16 @@ explicit has_gsl ;
exe has_rmath : has_rmath.cpp Rmath ;
explicit has_rmath ;
CEPHES_SOURCE = acosh.c airy.c asin.c asinh.c atan.c atanh.c bdtr.c beta.c
btdtr.c cbrt.c chbevl.c chdtr.c clog.c cmplx.c const.c
cosh.c dawsn.c drand.c ei.c ellie.c ellik.c ellpe.c ellpj.c ellpk.c
exp.c exp10.c exp2.c expn.c expx2.c fabs.c fac.c fdtr.c
fresnl.c gamma.c gdtr.c hyp2f1.c hyperg.c i0.c i1.c igami.c incbet.c
incbi.c igam.c isnan.c iv.c j0.c j1.c jn.c jv.c k0.c k1.c kn.c kolmogorov.c
log.c log2.c log10.c lrand.c nbdtr.c ndtr.c ndtri.c pdtr.c planck.c
polevl.c polmisc.c polylog.c polyn.c pow.c powi.c psi.c rgamma.c round.c
shichi.c sici.c sin.c sindg.c sinh.c spence.c stdtr.c struve.c
tan.c tandg.c tanh.c unity.c yn.c zeta.c zetac.c
CEPHES_SOURCE = acosh.c airy.c asin.c asinh.c atan.c atanh.c bdtr.c beta.c
btdtr.c cbrt.c chbevl.c chdtr.c clog.c cmplx.c const.c
cosh.c dawsn.c drand.c ei.c ellie.c ellik.c ellpe.c ellpj.c ellpk.c
exp.c exp10.c exp2.c expn.c expx2.c fabs.c fac.c fdtr.c
fresnl.c gamma.c gdtr.c hyp2f1.c hyperg.c i0.c i1.c igami.c incbet.c
incbi.c igam.c isnan.c iv.c j0.c j1.c jn.c jv.c k0.c k1.c kn.c kolmogorov.c
log.c log2.c log10.c lrand.c nbdtr.c ndtr.c ndtri.c pdtr.c planck.c
polevl.c polmisc.c polylog.c polyn.c pow.c powi.c psi.c rgamma.c round.c
shichi.c sici.c sin.c sindg.c sinh.c spence.c stdtr.c struve.c
tan.c tandg.c tanh.c unity.c yn.c zeta.c zetac.c
sqrt.c floor.c setprec.c mtherr.c ;
path-constant here : . ;
@ -68,10 +69,10 @@ actions check_exists
explicit $(here)/third_party/cephes_double/acosh.c ;
lib cephes_double : $(here)/third_party/cephes_double/$(CEPHES_SOURCE)
:
:
release
<link>static
[ check-target-builds $(here)/third_party/cephes_double/acosh.c : : <build>no ]
[ check-target-builds $(here)/third_party/cephes_double/acosh.c : : <build>no ]
;
explicit cephes_double ;
@ -80,52 +81,52 @@ rule all-tests {
local result ;
for local source in [ glob test*.cpp ]
{
result += [ run $(source) /boost/system /boost/filesystem /boost/test//boost_unit_test_framework
: : :
[ check-target-builds has_gsl : <define>ALWAYS_TEST_DOUBLE : ]
result += [ run $(source) /boost/system//boost_system /boost/filesystem//boost_filesystem /boost/test//boost_unit_test_framework /boost/interprocess//boost_interprocess /boost/multiprecision//boost_multiprecision /boost/type_index//boost_type_index quadmath mpfr
: : :
[ check-target-builds has_gsl : <define>ALWAYS_TEST_DOUBLE : ]
<target-os>linux:<linkflags>-lpthread
<target-os>linux:<linkflags>-lrt
<toolset>gcc:<linkflags>$(OTHERFLAGS) ]
;
result += [ run $(source) /boost/system /boost/filesystem /boost/test//boost_unit_test_framework
: : : [ check-target-builds has_cxx17_cmath : <define>TEST_CXX17_CMATH : <build>no ]
result += [ run $(source) /boost/system//boost_system /boost/filesystem//boost_filesystem /boost/test//boost_unit_test_framework /boost/interprocess//boost_interprocess /boost/multiprecision//boost_multiprecision /boost/type_index//boost_type_index quadmath mpfr
: : : [ check-target-builds has_cxx17_cmath : <define>TEST_CXX17_CMATH : <build>no ]
<target-os>linux:<linkflags>-lpthread
<target-os>linux:<linkflags>-lrt
<toolset>gcc:<linkflags>$(OTHERFLAGS)
: $(source:B)_cxx17_cmath ]
: $(source:B)_cxx17_cmath ]
;
result += [ run $(source) /boost/system /boost/filesystem /boost/test//boost_unit_test_framework
: : : [ check-target-builds has_c99_cmath : <define>TEST_C99 : <build>no ]
result += [ run $(source) /boost/system//boost_system /boost/filesystem//boost_filesystem /boost/test//boost_unit_test_framework /boost/interprocess//boost_interprocess /boost/multiprecision//boost_multiprecision /boost/type_index//boost_type_index quadmath mpfr
: : : [ check-target-builds has_c99_cmath : <define>TEST_C99 : <build>no ]
<target-os>linux:<linkflags>-lpthread
<target-os>linux:<linkflags>-lrt
<toolset>gcc:<linkflags>$(OTHERFLAGS)
: $(source:B)_c99 ]
: $(source:B)_c99 ]
;
result += [ run $(source) /boost/system /boost/filesystem /boost/test//boost_unit_test_framework gsl gslcblas
: : : [ check-target-builds has_gsl : <define>TEST_GSL : <build>no ]
result += [ run $(source) /boost/system//boost_system /boost/filesystem//boost_filesystem /boost/test//boost_unit_test_framework /boost/interprocess//boost_interprocess /boost/multiprecision//boost_multiprecision /boost/type_index//boost_type_index gsl gslcblas
: : : [ check-target-builds has_gsl : <define>TEST_GSL : <build>no ]
<target-os>linux:<linkflags>-lpthread
<target-os>linux:<linkflags>-lrt
<toolset>gcc:<linkflags>$(OTHERFLAGS)
: $(source:B)_gsl ]
: $(source:B)_gsl ]
;
result += [ run $(source) /boost/system /boost/filesystem /boost/test//boost_unit_test_framework Rmath
: : : [ check-target-builds has_rmath : <define>TEST_RMATH : <build>no ]
result += [ run $(source) /boost/system//boost_system /boost/filesystem//boost_filesystem /boost/test//boost_unit_test_framework /boost/interprocess//boost_interprocess /boost/multiprecision//boost_multiprecision /boost/type_index//boost_type_index Rmath
: : : [ check-target-builds has_rmath : <define>TEST_RMATH : <build>no ]
<target-os>linux:<linkflags>-lpthread
<target-os>linux:<linkflags>-lrt
<toolset>gcc:<linkflags>$(OTHERFLAGS)
: $(source:B)_rmath ]
: $(source:B)_rmath ]
;
result += [ run $(source) /boost/system /boost/filesystem /boost/test//boost_unit_test_framework cephes_double
: : : [ check-target-builds $(here)/third_party/cephes_double/acosh.c : <define>TEST_CEPHES <source>cephes_double : <build>no ]
result += [ run $(source) /boost/system//boost_system /boost/filesystem//boost_filesystem /boost/test//boost_unit_test_framework /boost/interprocess//boost_interprocess /boost/multiprecision//boost_multiprecision /boost/type_index//boost_type_index cephes_double
: : : [ check-target-builds $(here)/third_party/cephes_double/acosh.c : <define>TEST_CEPHES <source>cephes_double : <build>no ]
<target-os>linux:<linkflags>-lpthread
<target-os>linux:<linkflags>-lrt
<toolset>gcc:<linkflags>$(OTHERFLAGS)
: $(source:B)_cephes ]
: $(source:B)_cephes ]
;
}
return $(result) ;
return $(result) ;
}
test-suite report_gen : [ all-tests ] ;
path-constant images_location : html ;
@ -138,7 +139,7 @@ boostbook standalone
:
# Path for links to Boost:
<xsl:param>boost.root=../../../../..
# Some general style settings:
<xsl:param>table.footnote.number.format=1
<xsl:param>footnote.number.format=1
@ -159,25 +160,25 @@ boostbook standalone
<xsl:param>generate.section.toc.level=10
;
lib gmp ;
lib mpfr ;
lib quadmath ;
searched-lib gmp : : <link>shared ;
searched-lib mpfr : : <link>shared ;
searched-lib quadmath : : <link>shared ;
#
# Some manual tests that are expensive to run:
#
run erf_error_plot.cpp mpfr gmp : : : release <cxxstd>17 [ check-target-builds ../../config//has_mpfr : : <build>no ] : erf_error_plot_double ;
run erf_error_plot.cpp /boost/multiprecision//boost_multiprecision mpfr gmp : : : release <cxxstd>17 [ check-target-builds ../../config//has_mpfr : : <build>no ] : erf_error_plot_double ;
explicit erf_error_plot_double ;
run erf_error_plot.cpp mpfr gmp : : : release <cxxstd>17 <define>TEST_TYPE="\"long double\"" [ check-target-builds ../../config//has_mpfr : : <build>no ] : erf_error_plot_long_double ;
run erf_error_plot.cpp /boost/multiprecision//boost_multiprecision mpfr gmp : : : release <cxxstd>17 <define>TEST_TYPE="\"long double\"" [ check-target-builds ../../config//has_mpfr : : <build>no ] : erf_error_plot_long_double ;
explicit erf_error_plot_long_double ;
run erf_error_plot.cpp mpfr gmp : : : release <cxxstd>17 <define>TEST_TYPE=cpp_bin_float_50 [ check-target-builds ../../config//has_mpfr : : <build>no ] : erf_error_plot_cpp_bin_float_50 ;
run erf_error_plot.cpp /boost/multiprecision//boost_multiprecision mpfr gmp : : : release <cxxstd>17 <define>TEST_TYPE=cpp_bin_float_50 [ check-target-builds ../../config//has_mpfr : : <build>no ] : erf_error_plot_cpp_bin_float_50 ;
explicit erf_error_plot_cpp_bin_float_50 ;
run erf_error_plot.cpp mpfr gmp quadmath : : : release <cxxstd>17 <cxxstd-dialect>gnu <define>TEST_TYPE=float128 [ check-target-builds ../../config//has_mpfr : : <build>no ] : erf_error_plot_float128 ;
run erf_error_plot.cpp /boost/multiprecision//boost_multiprecision mpfr gmp quadmath : : : release <cxxstd>17 <cxxstd-dialect>gnu <define>TEST_TYPE=float128 [ check-target-builds ../../config//has_mpfr : : <build>no ] : erf_error_plot_float128 ;
explicit erf_error_plot_cpp_bin_float_50 ;
run erfc_error_plot.cpp mpfr gmp : : : release <cxxstd>17 [ check-target-builds ../../config//has_mpfr : : <build>no ] : erfc_error_plot_double ;
run erfc_error_plot.cpp /boost/multiprecision//boost_multiprecision mpfr gmp : : : release <cxxstd>17 [ check-target-builds ../../config//has_mpfr : : <build>no ] : erfc_error_plot_double ;
explicit erfc_error_plot_double ;
run erfc_error_plot.cpp mpfr gmp : : : release <cxxstd>17 <define>TEST_TYPE="\"long double\"" [ check-target-builds ../../config//has_mpfr : : <build>no ] : erfc_error_plot_long_double ;
run erfc_error_plot.cpp /boost/multiprecision//boost_multiprecision mpfr gmp : : : release <cxxstd>17 <define>TEST_TYPE="\"long double\"" [ check-target-builds ../../config//has_mpfr : : <build>no ] : erfc_error_plot_long_double ;
explicit erfc_error_plot_long_double ;
run erfc_error_plot.cpp mpfr gmp : : : release <cxxstd>17 <define>TEST_TYPE=cpp_bin_float_50 [ check-target-builds ../../config//has_mpfr : : <build>no ] : erfc_error_plot_cpp_bin_float_50 ;
run erfc_error_plot.cpp /boost/multiprecision//boost_multiprecision mpfr gmp : : : release <cxxstd>17 <define>TEST_TYPE=cpp_bin_float_50 [ check-target-builds ../../config//has_mpfr : : <build>no ] : erfc_error_plot_cpp_bin_float_50 ;
explicit erfc_error_plot_cpp_bin_float_50 ;
run erfc_error_plot.cpp mpfr gmp quadmath : : : release <cxxstd>17 <cxxstd-dialect>gnu <define>TEST_TYPE=float128 [ check-target-builds ../../config//has_mpfr : : <build>no ] : erfc_error_plot_float128 ;
run erfc_error_plot.cpp /boost/multiprecision//boost_multiprecision mpfr gmp quadmath : : : release <cxxstd>17 <cxxstd-dialect>gnu <define>TEST_TYPE=float128 [ check-target-builds ../../config//has_mpfr : : <build>no ] : erfc_error_plot_float128 ;
explicit erfc_error_plot_cpp_bin_float_50 ;

View File

@ -12,11 +12,13 @@ import testing ;
import modules ;
import path ;
import pch ;
import ../../../config/checks/config : requires ;
import-search /boost/config/checks ;
import config : requires ;
using quickbook ;
using auto-index ;
import ../../../predef/tools/check/predef
import-search /boost/predef/tools/check ;
import predef
: check require
: predef-check predef-require ;
@ -39,9 +41,9 @@ if $(is_unix)
#
# Configuration first:
#
lib gsl ;
lib gslcblas ;
lib Rmath ;
searched-lib gsl ;
searched-lib gslcblas ;
searched-lib Rmath ;
obj has_libstdcxx_tr1 : ../accuracy/has_libstdcxx_tr1.cpp ;
explicit has_libstdcxx_tr1 ;
obj has_c99_cmath : has_c99_cmath.cpp ;
@ -53,16 +55,16 @@ explicit has_rmath ;
obj is_intel_win : is_intel_win.cpp ;
explicit is_intel_win ;
CEPHES_SOURCE = acosh.c airy.c asin.c asinh.c atan.c atanh.c bdtr.c beta.c
btdtr.c cbrt.c chbevl.c chdtr.c clog.c cmplx.c const.c
cosh.c dawsn.c drand.c ei.c ellie.c ellik.c ellpe.c ellpj.c ellpk.c
exp.c exp10.c exp2.c expn.c expx2.c fabs.c fac.c fdtr.c
fresnl.c gamma.c gdtr.c hyp2f1.c hyperg.c i0.c i1.c igami.c incbet.c
incbi.c igam.c isnan.c iv.c j0.c j1.c jn.c jv.c k0.c k1.c kn.c kolmogorov.c
log.c log2.c log10.c lrand.c nbdtr.c ndtr.c ndtri.c pdtr.c planck.c
polevl.c polmisc.c polylog.c polyn.c pow.c powi.c psi.c rgamma.c round.c
shichi.c sici.c sin.c sindg.c sinh.c spence.c stdtr.c struve.c
tan.c tandg.c tanh.c unity.c yn.c zeta.c zetac.c
CEPHES_SOURCE = acosh.c airy.c asin.c asinh.c atan.c atanh.c bdtr.c beta.c
btdtr.c cbrt.c chbevl.c chdtr.c clog.c cmplx.c const.c
cosh.c dawsn.c drand.c ei.c ellie.c ellik.c ellpe.c ellpj.c ellpk.c
exp.c exp10.c exp2.c expn.c expx2.c fabs.c fac.c fdtr.c
fresnl.c gamma.c gdtr.c hyp2f1.c hyperg.c i0.c i1.c igami.c incbet.c
incbi.c igam.c isnan.c iv.c j0.c j1.c jn.c jv.c k0.c k1.c kn.c kolmogorov.c
log.c log2.c log10.c lrand.c nbdtr.c ndtr.c ndtri.c pdtr.c planck.c
polevl.c polmisc.c polylog.c polyn.c pow.c powi.c psi.c rgamma.c round.c
shichi.c sici.c sin.c sindg.c sinh.c spence.c stdtr.c struve.c
tan.c tandg.c tanh.c unity.c yn.c zeta.c zetac.c
sqrt.c floor.c setprec.c mtherr.c ;
DCDFLIB_SOURCE = dcdflib.c ipmpar.c ;
@ -78,33 +80,33 @@ explicit $(here)/third_party/cephes_double/acosh.c ;
explicit $(here)/third_party/dcdflib/dcdflib.c ;
lib cephes_double : $(here)/third_party/cephes_double/$(CEPHES_SOURCE)
:
:
release
<link>static
[ check-target-builds $(here)/third_party/cephes_double/acosh.c : : <build>no ]
[ check-target-builds $(here)/third_party/cephes_double/acosh.c : : <build>no ]
;
explicit cephes_double ;
lib dcdflib : $(here)/third_party/dcdflib/$(DCDFLIB_SOURCE)
:
:
release
<link>static
[ check-target-builds $(here)/third_party/dcdflib/dcdflib.c : : <build>no ]
[ check-target-builds $(here)/third_party/dcdflib/dcdflib.c : : <build>no ]
;
explicit dcdflib ;
obj table_helper : table_helper.cpp ;
obj table_helper : table_helper.cpp /boost/filesystem//boost_filesystem /boost/interprocess//boost_interprocess ;
rule all-tests {
local result ;
for local source in [ glob test*.cpp ]
{
result += [ run $(source) /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper
: : : release <include>../../test
[ check-target-builds ../accuracy//has_c99_cmath : <define>TEST_C99 ]
[ check-target-builds has_libstdcxx_tr1 : <define>TEST_LIBSTDCXX ]
result += [ run $(source) /boost/regex//boost_regex /boost/system//boost_system /boost/chrono//boost_chrono /boost/filesystem//boost_filesystem /boost/multiprecision//boost_multiprecision /boost/filesystem//boost_filesystem table_helper
: : : <variant>release <include>../../test
[ check-target-builds ../accuracy//has_c99_cmath : <define>TEST_C99 ]
[ check-target-builds has_libstdcxx_tr1 : <define>TEST_LIBSTDCXX ]
[ check-target-builds ../accuracy//has_gsl : <define>TEST_GSL <source>gsl <source>gslcblas ]
[ check-target-builds ../accuracy//has_rmath : <define>TEST_RMATH <source>Rmath ]
# [ check-target-builds is_intel_win : <build>no : ]
@ -113,46 +115,46 @@ rule all-tests {
#<toolset>msvc:<address-model>64
] ;
}
return $(result) ;
return $(result) ;
}
#
# Special cases to test different compiler options,
# cbrt first as an example of a trivial function:
#
run test_cbrt.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper
run test_cbrt.cpp /boost/regex//boost_regex /boost/system//boost_system /boost/chrono//boost_chrono /boost/filesystem//boost_filesystem table_helper
: : : debug <define>COMPILER_COMPARISON_TABLES [ predef-require "BOOST_COMP_MSVC" ] <address-model>32 : test_cbrt_msvc_debug ;
run test_cbrt.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper
run test_cbrt.cpp /boost/regex//boost_regex /boost/system//boost_system /boost/chrono//boost_chrono /boost/filesystem//boost_filesystem table_helper
: : : release <define>COMPILER_COMPARISON_TABLES [ predef-require "BOOST_COMP_MSVC" ] <cxxflags>-Ox <address-model>32 : test_cbrt_msvc_release_32 ;
run test_cbrt.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper
run test_cbrt.cpp /boost/regex//boost_regex /boost/system//boost_system /boost/chrono//boost_chrono /boost/filesystem//boost_filesystem table_helper
: : : release <define>COMPILER_COMPARISON_TABLES [ predef-require "BOOST_COMP_MSVC" ] <cxxflags>-Ox <address-model>64 : test_cbrt_msvc_release_64 ;
run test_cbrt.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper
run test_cbrt.cpp /boost/regex//boost_regex /boost/system//boost_system /boost/chrono//boost_chrono /boost/filesystem//boost_filesystem table_helper
: : : release <define>COMPILER_COMPARISON_TABLES [ check-target-builds is_intel_win : : <build>no ] <toolset>intel:<cxxflags>-Ox <address-model>64 : test_cbrt_intel_release ;
#
# Now jn as a little more complex:
#
run test_jn.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper
run test_jn.cpp /boost/regex//boost_regex /boost/system//boost_system /boost/chrono//boost_chrono /boost/filesystem//boost_filesystem table_helper
: : : debug <define>COMPILER_COMPARISON_TABLES <include>../../test [ predef-require "BOOST_COMP_MSVC" ] <address-model>32 : test_jn_msvc_debug ;
run test_jn.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper
run test_jn.cpp /boost/regex//boost_regex /boost/system//boost_system /boost/chrono//boost_chrono /boost/filesystem//boost_filesystem table_helper
: : : release <define>COMPILER_COMPARISON_TABLES <include>../../test [ predef-require "BOOST_COMP_MSVC" ] <cxxflags>-Ox <address-model>32 : test_jn_msvc_release_32 ;
run test_jn.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper
run test_jn.cpp /boost/regex//boost_regex /boost/system//boost_system /boost/chrono//boost_chrono /boost/filesystem//boost_filesystem table_helper
: : : release <define>COMPILER_COMPARISON_TABLES <include>../../test [ predef-require "BOOST_COMP_MSVC" ] <cxxflags>-Ox <address-model>64 : test_jn_msvc_release_64 ;
run test_jn.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper
run test_jn.cpp /boost/regex//boost_regex /boost/system//boost_system /boost/chrono//boost_chrono /boost/filesystem//boost_filesystem table_helper
: : : release <define>COMPILER_COMPARISON_TABLES <include>../../test [ check-target-builds is_intel_win : : <build>no ] <address-model>64 : test_jn_intel_release ;
#
# Then something really expensive, like the inverse-incomplete-beta:
#
run test_ibeta_inv.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper
run test_ibeta_inv.cpp /boost/regex//boost_regex /boost/system//boost_system /boost/chrono//boost_chrono /boost/filesystem//boost_filesystem table_helper
: : : debug <define>COMPILER_COMPARISON_TABLES <include>../../test [ predef-require "BOOST_COMP_MSVC" ] <address-model>32 : test_ibeta_inv_msvc_debug ;
run test_ibeta_inv.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper
run test_ibeta_inv.cpp /boost/regex//boost_regex /boost/system//boost_system /boost/chrono//boost_chrono /boost/filesystem//boost_filesystem table_helper
: : : release <define>COMPILER_COMPARISON_TABLES <include>../../test [ predef-require "BOOST_COMP_MSVC" ] <cxxflags>-Ox <address-model>32 : test_ibeta_inv_msvc_release_32 ;
run test_ibeta_inv.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper
run test_ibeta_inv.cpp /boost/regex//boost_regex /boost/system//boost_system /boost/chrono//boost_chrono /boost/filesystem//boost_filesystem table_helper
: : : release <define>COMPILER_COMPARISON_TABLES <include>../../test [ predef-require "BOOST_COMP_MSVC" ] <cxxflags>-Ox <address-model>64 : test_ibeta_inv_msvc_release_64 ;
run test_ibeta_inv.cpp /boost/regex//boost_regex /boost/system /boost/chrono /boost/filesystem table_helper
run test_ibeta_inv.cpp /boost/regex//boost_regex /boost/system//boost_system /boost/chrono//boost_chrono /boost/filesystem//boost_filesystem table_helper
: : : release <define>COMPILER_COMPARISON_TABLES <include>../../test [ check-target-builds is_intel_win : : <build>no ] <toolset>intel:<cxxflags>-Ox <address-model>64 : test_ibeta_inv_intel_release ;
test-suite report_gen : [ all-tests ] test_cbrt_msvc_debug test_cbrt_msvc_release_32 test_cbrt_msvc_release_64 test_cbrt_intel_release
test_jn_msvc_debug test_jn_msvc_release_32 test_jn_msvc_release_64 test_jn_intel_release test_ibeta_inv_msvc_debug
test-suite report_gen : [ all-tests ] test_cbrt_msvc_debug test_cbrt_msvc_release_32 test_cbrt_msvc_release_64 test_cbrt_intel_release
test_jn_msvc_debug test_jn_msvc_release_32 test_jn_msvc_release_64 test_jn_intel_release test_ibeta_inv_msvc_debug
test_ibeta_inv_msvc_release_32 test_ibeta_inv_msvc_release_64 test_ibeta_inv_intel_release ;
path-constant images_location : html ;
@ -165,7 +167,7 @@ boostbook standalone
:
# Path for links to Boost:
<xsl:param>boost.root=../../../../..
# Some general style settings:
<xsl:param>table.footnote.number.format=1
<xsl:param>footnote.number.format=1

File diff suppressed because it is too large Load Diff

View File

@ -14,7 +14,7 @@
#include "table_type.hpp"
#include "libs/math/test/log1p_expm1_test.hpp"
#include "log1p_expm1_test.hpp"
//
// DESCRIPTION:

View File

@ -16,7 +16,7 @@
#include "table_type.hpp"
#include "libs/math/test/powm1_sqrtp1m1_test.hpp"
#include "powm1_sqrtp1m1_test.hpp"
//
// DESCRIPTION:

View File

@ -5,7 +5,7 @@
#ifndef BOOST_MP_TABLE_TYPE
#include <libs/math/test/table_type.hpp>
#include <table_type.hpp>
#define SC_(x) BOOST_FLOATMAX_C(x)

View File

@ -12,7 +12,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/bessel.hpp>
#include "libs/math/test/test_bessel_i.hpp"
#include "test_bessel_i.hpp"
void expected_results()
{

View File

@ -12,7 +12,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/bessel.hpp>
#include "libs/math/test/test_bessel_j.hpp"
#include "test_bessel_j.hpp"
void expected_results()
{

View File

@ -12,7 +12,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/bessel.hpp>
#include "libs/math/test/test_bessel_k.hpp"
#include "test_bessel_k.hpp"
void expected_results()
{

View File

@ -12,7 +12,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/bessel.hpp>
#include "libs/math/test/test_bessel_y.hpp"
#include "test_bessel_y.hpp"
void expected_results()
{

View File

@ -12,7 +12,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/beta.hpp>
#include "libs/math/test/test_beta.hpp"
#include "test_beta.hpp"
void expected_results()
{

View File

@ -12,7 +12,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/binomial.hpp>
#include "libs/math/test/test_binomial_coeff.hpp"
#include "test_binomial_coeff.hpp"
void expected_results()
{

View File

@ -11,7 +11,7 @@
#include <boost/math/special_functions/ellint_rf.hpp>
#include <boost/math/special_functions/ellint_rj.hpp>
#include <boost/math/special_functions/ellint_rg.hpp>
#include "libs/math/test/test_carlson.hpp"
#include "test_carlson.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/cbrt.hpp>
#include "libs/math/test/test_cbrt.hpp"
#include "test_cbrt.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/digamma.hpp>
#include "libs/math/test/test_digamma.hpp"
#include "test_digamma.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/ellint_1.hpp>
#include "libs/math/test/test_ellint_1.hpp"
#include "test_ellint_1.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/ellint_2.hpp>
#include "libs/math/test/test_ellint_2.hpp"
#include "test_ellint_2.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/ellint_3.hpp>
#include "libs/math/test/test_ellint_3.hpp"
#include "test_ellint_3.hpp"
void expected_results()
{

View File

@ -8,7 +8,7 @@
#define TEST_UDT
#include <boost/math/special_functions/erf.hpp>
#include "libs/math/test/test_erf.hpp"
#include "test_erf.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/expint.hpp>
#include "libs/math/test/test_expint.hpp"
#include "test_expint.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/gamma.hpp>
#include "libs/math/test/test_gamma.hpp"
#include "test_gamma.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/hermite.hpp>
#include "libs/math/test/test_hermite.hpp"
#include "test_hermite.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/beta.hpp>
#include "libs/math/test/test_ibeta.hpp"
#include "test_ibeta.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/beta.hpp>
#include "libs/math/test/test_ibeta_inv.hpp"
#include "test_ibeta_inv.hpp"
void expected_results()
{

View File

@ -11,7 +11,7 @@
#define FULL_TEST
#include <boost/math/special_functions/beta.hpp>
#include "libs/math/test/test_ibeta_inv_ab.hpp"
#include "test_ibeta_inv_ab.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/gamma.hpp>
#include "libs/math/test/test_igamma.hpp"
#include "test_igamma.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/gamma.hpp>
#include "libs/math/test/test_igamma_inv.hpp"
#include "test_igamma_inv.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/gamma.hpp>
#include "libs/math/test/test_igamma_inva.hpp"
#include "test_igamma_inva.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/laguerre.hpp>
#include "libs/math/test/test_laguerre.hpp"
#include "test_laguerre.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/legendre.hpp>
#include "libs/math/test/test_legendre.hpp"
#include "test_legendre.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/polygamma.hpp>
#include "libs/math/test/test_polygamma.hpp"
#include "test_polygamma.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/gamma.hpp>
#include "libs/math/test/test_tgamma_ratio.hpp"
#include "test_tgamma_ratio.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/trigamma.hpp>
#include "libs/math/test/test_trigamma.hpp"
#include "test_trigamma.hpp"
void expected_results()
{

View File

@ -7,7 +7,7 @@
#include "table_type.hpp"
#include <boost/math/special_functions/zeta.hpp>
#include "libs/math/test/test_zeta.hpp"
#include "test_zeta.hpp"
void expected_results()
{

View File

@ -22,114 +22,114 @@ void test(const char* name)
{
std::cout << "Testing type " << name << ":\n";
static const typename table_type<T>::type data[] =
static const typename table_type<T>::type data[] =
{
/* First 50 from 2 to 100 inclusive: */
/* TABLE[N[BernoulliB[n], 200], {n,2,100,2}] */
SC_(0.1666666666666666666666666666666666666666),
SC_(-0.0333333333333333333333333333333333333333),
SC_(0.0238095238095238095238095238095238095238),
SC_(-0.0333333333333333333333333333333333333333),
SC_(0.0757575757575757575757575757575757575757),
SC_(-0.2531135531135531135531135531135531135531),
SC_(1.1666666666666666666666666666666666666666),
SC_(-7.0921568627450980392156862745098039215686),
SC_(54.9711779448621553884711779448621553884711),
SC_(-529.1242424242424242424242424242424242424242),
SC_(6192.1231884057971014492753623188405797101449),
SC_(-86580.2531135531135531135531135531135531135531),
SC_(1.4255171666666666666666666666666666666666e6),
SC_(-2.7298231067816091954022988505747126436781e7),
SC_(6.0158087390064236838430386817483591677140e8),
SC_(-1.5116315767092156862745098039215686274509e10),
SC_(4.2961464306116666666666666666666666666666e11),
SC_(-1.3711655205088332772159087948561632772159e13),
SC_(4.8833231897359316666666666666666666666666e14),
SC_(-1.9296579341940068148632668144863266814486e16),
SC_(8.4169304757368261500055370985603543743078e17),
SC_(-4.0338071854059455413076811594202898550724e19),
SC_(2.1150748638081991605601453900709219858156e21),
SC_(-1.2086626522296525934602731193708252531781e23),
SC_(7.5008667460769643668557200757575757575757e24),
SC_(-5.0387781014810689141378930305220125786163e26),
SC_(3.6528776484818123335110430842971177944862e28),
SC_(-2.8498769302450882226269146432910678160919e30),
SC_(2.3865427499683627644645981919219214971751e32),
SC_(-2.1399949257225333665810744765191097392674e34),
SC_(2.0500975723478097569921733095672310251666e36),
SC_(-2.0938005911346378409095185290027970184709e38),
SC_(2.2752696488463515559649260352769264581469e40),
SC_(-2.6257710286239576047303049736158202081449e42),
SC_(3.2125082102718032518204792304264985243521e44),
SC_(-4.1598278166794710913917074495262358936689e46),
SC_(5.6920695482035280023883456219121058644480e48),
SC_(-8.2183629419784575692290653468617333014550e50),
SC_(1.2502904327166993016732339829702895524177e53),
SC_(-2.0015583233248370274925329198813298768724e55),
SC_(3.3674982915364374233396676903338753016219e57),
SC_(-5.9470970503135447718660496844051540840579e59),
SC_(1.1011910323627977559564130790437691604630e62),
SC_(-2.1355259545253501188658385019041065678973e64),
SC_(4.3328896986641192419616613059379206218451e66),
SC_(-9.1885528241669328226200555215501897138960e68),
SC_(2.0346896776329074493455027990220020065975e71),
SC_(-4.7003833958035731078575255535006060654596e73),
SC_(1.1318043445484249270675186257733934267890e76),
SC_(0.1666666666666666666666666666666666666666),
SC_(-0.0333333333333333333333333333333333333333),
SC_(0.0238095238095238095238095238095238095238),
SC_(-0.0333333333333333333333333333333333333333),
SC_(0.0757575757575757575757575757575757575757),
SC_(-0.2531135531135531135531135531135531135531),
SC_(1.1666666666666666666666666666666666666666),
SC_(-7.0921568627450980392156862745098039215686),
SC_(54.9711779448621553884711779448621553884711),
SC_(-529.1242424242424242424242424242424242424242),
SC_(6192.1231884057971014492753623188405797101449),
SC_(-86580.2531135531135531135531135531135531135531),
SC_(1.4255171666666666666666666666666666666666e6),
SC_(-2.7298231067816091954022988505747126436781e7),
SC_(6.0158087390064236838430386817483591677140e8),
SC_(-1.5116315767092156862745098039215686274509e10),
SC_(4.2961464306116666666666666666666666666666e11),
SC_(-1.3711655205088332772159087948561632772159e13),
SC_(4.8833231897359316666666666666666666666666e14),
SC_(-1.9296579341940068148632668144863266814486e16),
SC_(8.4169304757368261500055370985603543743078e17),
SC_(-4.0338071854059455413076811594202898550724e19),
SC_(2.1150748638081991605601453900709219858156e21),
SC_(-1.2086626522296525934602731193708252531781e23),
SC_(7.5008667460769643668557200757575757575757e24),
SC_(-5.0387781014810689141378930305220125786163e26),
SC_(3.6528776484818123335110430842971177944862e28),
SC_(-2.8498769302450882226269146432910678160919e30),
SC_(2.3865427499683627644645981919219214971751e32),
SC_(-2.1399949257225333665810744765191097392674e34),
SC_(2.0500975723478097569921733095672310251666e36),
SC_(-2.0938005911346378409095185290027970184709e38),
SC_(2.2752696488463515559649260352769264581469e40),
SC_(-2.6257710286239576047303049736158202081449e42),
SC_(3.2125082102718032518204792304264985243521e44),
SC_(-4.1598278166794710913917074495262358936689e46),
SC_(5.6920695482035280023883456219121058644480e48),
SC_(-8.2183629419784575692290653468617333014550e50),
SC_(1.2502904327166993016732339829702895524177e53),
SC_(-2.0015583233248370274925329198813298768724e55),
SC_(3.3674982915364374233396676903338753016219e57),
SC_(-5.9470970503135447718660496844051540840579e59),
SC_(1.1011910323627977559564130790437691604630e62),
SC_(-2.1355259545253501188658385019041065678973e64),
SC_(4.3328896986641192419616613059379206218451e66),
SC_(-9.1885528241669328226200555215501897138960e68),
SC_(2.0346896776329074493455027990220020065975e71),
SC_(-4.7003833958035731078575255535006060654596e73),
SC_(1.1318043445484249270675186257733934267890e76),
SC_(-2.8382249570693706959264156336481764738284e78),
/* next 50 from 102 to 200: */
/* TABLE[N[BernoulliB[n], 200], {n,102,200,2}] */
SC_(7.4064248979678850629750827140920984176879e80),
SC_(-2.0096454802756604483465619672715363186867e83),
SC_(5.6657170050805941445719346030519356961419e85),
SC_(-1.6584511154136216915823713374319912301494e88),
SC_(5.0368859950492377419289421915180154812442e90),
SC_(-1.5861468237658186369363401572966438782740e93),
SC_(5.1756743617545626984073240682507122561240e95),
SC_(-1.7488921840217117339690025877618159145141e98),
SC_(6.1160519994952185255824525264264167780767e100),
SC_(-2.2122776912707834942288323456712932445573e103),
SC_(8.2722776798770969854221062459984595731204e105),
SC_(-3.1958925111415709583591634369180814873526e108),
SC_(1.2750082223387792982310024302926679866957e111),
SC_(-5.2500923086774133899402824624565175446919e113),
SC_(2.2301817894241625209869298198838728143738e116),
SC_(-9.7684521930955204438633513398980239301166e118),
SC_(4.4098361978452954272272622874813169191875e121),
SC_(-2.0508570886464088839729337727583015486456e124),
SC_(9.8214433279791277107572969602097521041491e126),
SC_(-4.8412600798208880508789196709963412761130e129),
SC_(2.4553088801480982609783467404088690399673e132),
SC_(-1.2806926804084747548782513278601785721811e135),
SC_(6.8676167104668581192101888598464400436092e137),
SC_(-3.7846468581969104694978995416379556814489e140),
SC_(2.1426101250665291550871323135148272096660e143),
SC_(-1.2456727137183695007019642961637607219458e146),
SC_(7.4345787551000152543679668394052061311780e148),
SC_(-4.5535795304641704894063333223321274876772e151),
SC_(2.8612112816858868345363847251017232522918e154),
SC_(-1.8437723552033869727688202653628785487541e157),
SC_(1.2181154536221046699501316506599521355817e160),
SC_(-8.2482187185314121548481845729689344730141e162),
SC_(5.7225877937832943329651649814297861591868e165),
SC_(-4.0668530525059104726767969383115865560219e168),
SC_(2.9596092064642050062875269581585187042637e171),
SC_(-2.2049522565189457509031175227344598483637e174),
SC_(1.6812597072889599805831152515136066575446e177),
SC_(-1.3116736213556957648645280635581715300443e180),
SC_(1.0467894009478038082183285392982308964382e183),
SC_(-8.5432893578833707718598254629908277459327e185),
SC_(7.1287821322486542352288406677143822472124e188),
SC_(-6.0802931455535899300084711868647745846198e191),
SC_(5.2996776424849923930094291004324726622848e194),
SC_(-4.7194259168745862644364622901337991110376e197),
SC_(4.2928413791402981089416829654107466904552e200),
SC_(-3.9876744968232207443447765554293879510665e203),
SC_(3.7819780419358882713894418116139332789822e206),
SC_(-3.6614233683681191243685808215119734875519e209),
SC_(3.6176090272372862348855460929891408947754e212),
SC_(7.4064248979678850629750827140920984176879e80),
SC_(-2.0096454802756604483465619672715363186867e83),
SC_(5.6657170050805941445719346030519356961419e85),
SC_(-1.6584511154136216915823713374319912301494e88),
SC_(5.0368859950492377419289421915180154812442e90),
SC_(-1.5861468237658186369363401572966438782740e93),
SC_(5.1756743617545626984073240682507122561240e95),
SC_(-1.7488921840217117339690025877618159145141e98),
SC_(6.1160519994952185255824525264264167780767e100),
SC_(-2.2122776912707834942288323456712932445573e103),
SC_(8.2722776798770969854221062459984595731204e105),
SC_(-3.1958925111415709583591634369180814873526e108),
SC_(1.2750082223387792982310024302926679866957e111),
SC_(-5.2500923086774133899402824624565175446919e113),
SC_(2.2301817894241625209869298198838728143738e116),
SC_(-9.7684521930955204438633513398980239301166e118),
SC_(4.4098361978452954272272622874813169191875e121),
SC_(-2.0508570886464088839729337727583015486456e124),
SC_(9.8214433279791277107572969602097521041491e126),
SC_(-4.8412600798208880508789196709963412761130e129),
SC_(2.4553088801480982609783467404088690399673e132),
SC_(-1.2806926804084747548782513278601785721811e135),
SC_(6.8676167104668581192101888598464400436092e137),
SC_(-3.7846468581969104694978995416379556814489e140),
SC_(2.1426101250665291550871323135148272096660e143),
SC_(-1.2456727137183695007019642961637607219458e146),
SC_(7.4345787551000152543679668394052061311780e148),
SC_(-4.5535795304641704894063333223321274876772e151),
SC_(2.8612112816858868345363847251017232522918e154),
SC_(-1.8437723552033869727688202653628785487541e157),
SC_(1.2181154536221046699501316506599521355817e160),
SC_(-8.2482187185314121548481845729689344730141e162),
SC_(5.7225877937832943329651649814297861591868e165),
SC_(-4.0668530525059104726767969383115865560219e168),
SC_(2.9596092064642050062875269581585187042637e171),
SC_(-2.2049522565189457509031175227344598483637e174),
SC_(1.6812597072889599805831152515136066575446e177),
SC_(-1.3116736213556957648645280635581715300443e180),
SC_(1.0467894009478038082183285392982308964382e183),
SC_(-8.5432893578833707718598254629908277459327e185),
SC_(7.1287821322486542352288406677143822472124e188),
SC_(-6.0802931455535899300084711868647745846198e191),
SC_(5.2996776424849923930094291004324726622848e194),
SC_(-4.7194259168745862644364622901337991110376e197),
SC_(4.2928413791402981089416829654107466904552e200),
SC_(-3.9876744968232207443447765554293879510665e203),
SC_(3.7819780419358882713894418116139332789822e206),
SC_(-3.6614233683681191243685808215119734875519e209),
SC_(3.6176090272372862348855460929891408947754e212),
SC_(-3.6470772645191354362138308865549944904868e215),
};

View File

@ -14,8 +14,8 @@
#define BOOST_TEST_MAIN
#include <boost/test/unit_test.hpp>
#include <libs/math/test/almost_equal.ipp> // Similar to BOOST_CLOSE_FRACTION.
#include <libs/math/test/s_.ipp> // To create test strings like std::basic_string<CharType> s = S_("0 -0");
#include <almost_equal.ipp> // Similar to BOOST_CLOSE_FRACTION.
#include <s_.ipp> // To create test strings like std::basic_string<CharType> s = S_("0 -0");
#include <boost/math/special_functions/nonfinite_num_facets.hpp>
#include <locale>

View File

@ -1,6 +1,6 @@
# Copyright John Maddock 2010
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# 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.
# \math_toolkit\libs\math\test\jamfile.v2
# Runs all math toolkit tests, functions & distributions,
@ -9,45 +9,47 @@
# bring in the rules for testing
import modules ;
import path ;
import ../../config/checks/config : requires ;
import-search /boost/config/checks ;
import config : requires ;
project
: requirements
project
: requirements
<toolset>gcc:<cxxflags>-Wno-missing-braces
<toolset>darwin:<cxxflags>-Wno-missing-braces
<toolset>acc:<cxxflags>+W2068,2461,2236,4070,4069
<toolset>intel-win:<cxxflags>-nologo
<toolset>intel-win:<linkflags>-nologo
<toolset>intel-win:<cxxflags>-nologo
<toolset>intel-win:<linkflags>-nologo
<toolset>msvc:<warnings>all
<toolset>msvc:<asynch-exceptions>on
<toolset>msvc:<cxxflags>/wd4996
<toolset>msvc:<cxxflags>/wd4512
<toolset>msvc:<cxxflags>/wd4610
<toolset>msvc:<cxxflags>/wd4510
<toolset>msvc:<cxxflags>/wd4127
<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.
<link>static
<toolset>borland:<runtime-link>static
<include>../../..
<define>BOOST_ALL_NO_LIB=1
<define>BOOST_UBLAS_UNSUPPORTED_COMPILER=0
<include>.
<include>../include_private
<library>/boost/multiprecision//boost_multiprecision
<library>/boost/algorithm//boost_algorithm
;
lib gmp ;
lib mpfr ;
lib mpfi ;
lib quadmath ;
searched-lib gmp : : <link>shared ;
searched-lib mpfr : : <link>shared ;
searched-lib mpfi : : <link>shared ;
searched-lib quadmath : : <link>shared ;
exe bessel_data : bessel_data.cpp :
[ check-target-builds ../config//is_ci_standalone_run : <build>no ] ;
install bessel_data_install : bessel_data : <location>bin ;
exe ellint_f_data : ellint_f_data.cpp ;
exe ellint_f_data : ellint_f_data.cpp /boost/test//included ;
install ellint_f_data_install : ellint_f_data : <location>bin ;
exe heuman_lambda_data : heuman_lambda_data.cpp ;
exe heuman_lambda_data : heuman_lambda_data.cpp /boost/test//included ;
install heuman_lambda_data_install : heuman_lambda_data : <location>bin ;
exe hyp_2f2_data : hyp_2f2_data.cpp ;
@ -56,24 +58,24 @@ install hyp_2f2_data_install : hyp_2f2_data : <location>bin ;
exe laguerre_data : laguerre_data.cpp ;
install laguerre_data_install : laguerre_data : <location>bin ;
exe bessel_derivative_data : bessel_derivative_data.cpp :
[ check-target-builds ../../multiprecision/config//has_gmp : <source>gmp : <build>no ]
[ check-target-builds ../../multiprecision/config//has_mpfr : <source>mpfr : <build>no ]
exe bessel_derivative_data : bessel_derivative_data.cpp /boost/test//included :
[ check-target-builds /boost/multiprecision/config//has_gmp : <source>gmp : <build>no ]
[ check-target-builds /boost/multiprecision/config//has_mpfr : <source>mpfr : <build>no ]
[ check-target-builds ../config//is_ci_standalone_run : <build>no ] ;
install bessel_derivative_data_install : bessel_derivative_data : <location>bin ;
exe ellint_k_data : ellint_k_data.cpp ;
exe ellint_k_data : ellint_k_data.cpp /boost/test//included ;
install ellint_k_data_install : ellint_k_data : <location>bin ;
exe hyp_0f2_data : hyp_0f2_data.cpp ;
install hyp_0f2_data_install : hyp_0f2_data : <location>bin ;
exe hypergeometric_dist_data : hypergeometric_dist_data.cpp :
[ check-target-builds ../config//is_ci_standalone_run : <build>no ]
exe hypergeometric_dist_data : hypergeometric_dist_data.cpp :
[ check-target-builds ../config//is_ci_standalone_run : <build>no ]
[ requires cxx11_hdr_random ] ;
install hypergeometric_dist_data_install : hypergeometric_dist_data : <location>bin ;
exe legendre_data : legendre_data.cpp :
exe legendre_data : legendre_data.cpp :
[ check-target-builds ../config//is_ci_standalone_run : <build>no ] ;
install legendre_data_install : legendre_data : <location>bin ;
@ -81,13 +83,13 @@ exe beta_data : beta_data.cpp :
[ check-target-builds ../config//is_ci_standalone_run : <build>no ] ;
install beta_data_install : beta_data : <location>bin ;
exe ellint_pi2_data : ellint_pi2_data.cpp ;
exe ellint_pi2_data : ellint_pi2_data.cpp /boost/test//included ;
install ellint_pi2_data_install : ellint_pi2_data : <location>bin ;
exe hyp_1f1_big_data : hyp_1f1_big_data.cpp :
[ check-target-builds ../../multiprecision/config//has_gmp : <source>gmp : <build>no ]
[ check-target-builds ../../multiprecision/config//has_mpfr : <source>mpfr : <build>no ]
[ check-target-builds ../../multiprecision/config//has_mpfi : <source>gmp <source>mpfr <source>mpfi : <build>no ]
exe hyp_1f1_big_data : hyp_1f1_big_data.cpp :
[ check-target-builds /boost/multiprecision/config//has_gmp : <source>gmp : <build>no ]
[ check-target-builds /boost/multiprecision/config//has_mpfr : <source>mpfr : <build>no ]
[ check-target-builds /boost/multiprecision/config//has_mpfi : <source>gmp <source>mpfr <source>mpfi : <build>no ]
[ requires cxx11_decltype ] ;
install hyp_1f1_big_data_install : hyp_1f1_big_data : <location>bin ;
@ -98,68 +100,68 @@ install ibeta_data_install : ibeta_data : <location>bin ;
exe log1p_expm1_data : log1p_expm1_data.cpp ;
install log1p_expm1_data_install : log1p_expm1_data : <location>bin ;
exe carlson_ellint_data : carlson_ellint_data.cpp ;
exe carlson_ellint_data : carlson_ellint_data.cpp /boost/test//included ;
install carlson_ellint_data_install : carlson_ellint_data : <location>bin ;
exe ellint_pi3_data : ellint_pi3_data.cpp ;
exe ellint_pi3_data : ellint_pi3_data.cpp /boost/test//included ;
install ellint_pi3_data_install : ellint_pi3_data : <location>bin ;
exe hyp_1f1_data : hyp_1f1_data.cpp :
[ check-target-builds ../../multiprecision/config//has_gmp : <source>gmp : <build>no ]
[ check-target-builds ../../multiprecision/config//has_mpfr : <source>mpfr : <build>no ]
[ check-target-builds ../../multiprecision/config//has_mpfi : <source>gmp <source>mpfr <source>mpfi : <build>no ]
exe hyp_1f1_data : hyp_1f1_data.cpp :
[ check-target-builds /boost/multiprecision/config//has_gmp : <source>gmp : <build>no ]
[ check-target-builds /boost/multiprecision/config//has_mpfr : <source>mpfr : <build>no ]
[ check-target-builds /boost/multiprecision/config//has_mpfi : <source>gmp <source>mpfr <source>mpfi : <build>no ]
[ requires cxx11_decltype ] ;
install hyp_1f1_data_install : hyp_1f1_data : <location>bin ;
exe ibeta_derivative_data : ibeta_derivative_data.cpp :
exe ibeta_derivative_data : ibeta_derivative_data.cpp /boost/math//testing :
[ check-target-builds ../config//is_ci_standalone_run : <build>no ] ;
install ibeta_derivative_data_install : ibeta_derivative_data : <location>bin ;
exe sinc_data : sinc_data.cpp ;
exe sinc_data : sinc_data.cpp /boost/test//included ;
install sinc_data_install : sinc_data : <location>bin ;
exe cbrt_data : cbrt_data.cpp ;
install cbrt_data_install : cbrt_data : <location>bin ;
exe erf_data : erf_data.cpp : [ check-target-builds ../../multiprecision/config//has_float128 : <source>quadmath : <build>no ] ;
exe erf_data : erf_data.cpp : [ check-target-builds /boost/multiprecision/config//has_float128 : <source>quadmath : <build>no ] ;
install erf_data_install : erf_data : <location>bin ;
exe hyp_1f1_log_big_data : hyp_1f1_log_big_data.cpp :
[ check-target-builds ../../multiprecision/config//has_gmp : <source>gmp : <build>no ]
[ check-target-builds ../../multiprecision/config//has_mpfr : <source>mpfr : <build>no ]
[ check-target-builds ../../multiprecision/config//has_mpfi : <source>gmp <source>mpfr <source>mpfi : <build>no ]
exe hyp_1f1_log_big_data : hyp_1f1_log_big_data.cpp :
[ check-target-builds /boost/multiprecision/config//has_gmp : <source>gmp : <build>no ]
[ check-target-builds /boost/multiprecision/config//has_mpfr : <source>mpfr : <build>no ]
[ check-target-builds /boost/multiprecision/config//has_mpfi : <source>gmp <source>mpfr <source>mpfi : <build>no ]
[ requires cxx11_decltype ] ;
install hyp_1f1_log_big_data_install : hyp_1f1_log_big_data : <location>bin ;
exe ibeta_inv_data : ibeta_inv_data.cpp : [ check-target-builds ../../multiprecision/config//has_float128 : <source>quadmath : <build>no ] ;
exe ibeta_inv_data : ibeta_inv_data.cpp : [ check-target-builds /boost/multiprecision/config//has_float128 : <source>quadmath : <build>no ] ;
install ibeta_inv_data_install : ibeta_inv_data : <location>bin ;
exe spherical_harmonic_data : spherical_harmonic_data.cpp :
[ check-target-builds ../config//is_ci_standalone_run : <build>no ] ;
install spherical_harmonic_data_install : spherical_harmonic_data : <location>bin ;
exe digamma_data : digamma_data.cpp : [ check-target-builds ../../multiprecision/config//has_float128 : <source>quadmath : <build>no ] ;
exe digamma_data : digamma_data.cpp /boost/test//included : [ check-target-builds /boost/multiprecision/config//has_float128 : <source>quadmath : <build>no ] ;
install digamma_data_install : digamma_data : <location>bin ;
exe expint_data : expint_data.cpp ;
install expint_data_install : expint_data : <location>bin ;
exe hyp_1f1_reg_big_data : hyp_1f1_reg_big_data.cpp :
[ check-target-builds ../../multiprecision/config//has_gmp : <source>gmp : <build>no ]
[ check-target-builds ../../multiprecision/config//has_mpfr : <source>mpfr : <build>no ]
[ check-target-builds ../../multiprecision/config//has_mpfi : <source>gmp <source>mpfr <source>mpfi : <build>no ]
exe hyp_1f1_reg_big_data : hyp_1f1_reg_big_data.cpp :
[ check-target-builds /boost/multiprecision/config//has_gmp : <source>gmp : <build>no ]
[ check-target-builds /boost/multiprecision/config//has_mpfr : <source>mpfr : <build>no ]
[ check-target-builds /boost/multiprecision/config//has_mpfi : <source>gmp <source>mpfr <source>mpfi : <build>no ]
[ requires cxx11_decltype ] ;
install hyp_1f1_reg_big_data_install : hyp_1f1_reg_big_data : <location>bin ;
exe ibeta_invab_data : ibeta_invab_data.cpp : [ check-target-builds ../../multiprecision/config//has_float128 : <source>quadmath : <build>no ] ;
exe ibeta_invab_data : ibeta_invab_data.cpp : [ check-target-builds /boost/multiprecision/config//has_float128 : <source>quadmath : <build>no ] ;
install ibeta_invab_data_install : ibeta_invab_data : <location>bin ;
exe tgamma_large_data : tgamma_large_data.cpp :
[ check-target-builds ../../multiprecision/config//has_gmp : <source>gmp : <build>no ]
[ check-target-builds ../../multiprecision/config//has_mpfr : <source>mpfr : <build>no ] ;
exe tgamma_large_data : tgamma_large_data.cpp /boost/test//included :
[ check-target-builds /boost/multiprecision/config//has_gmp : <source>gmp : <build>no ]
[ check-target-builds /boost/multiprecision/config//has_mpfr : <source>mpfr : <build>no ] ;
install tgamma_large_data_install : tgamma_large_data : <location>bin ;
exe ellint_d_data : ellint_d_data.cpp ;
exe ellint_d_data : ellint_d_data.cpp /boost/test//included ;
install ellint_d_data_install : ellint_d_data : <location>bin ;
exe expint_i_data : expint_i_data.cpp ;
@ -168,17 +170,17 @@ install expint_i_data_install : expint_i_data : <location>bin ;
exe hyp_1f2_data : hyp_1f2_data.cpp ;
install hyp_1f2_data_install : hyp_1f2_data : <location>bin ;
exe igamma_data : igamma_data.cpp : [ check-target-builds ../../multiprecision/config//has_float128 : <source>quadmath : <build>no ] ;
exe igamma_data : igamma_data.cpp : [ check-target-builds /boost/multiprecision/config//has_float128 : <source>quadmath : <build>no ] ;
install igamma_data_install : igamma_data : <location>bin ;
exe tgamma_ratio_data : tgamma_ratio_data.cpp :
exe tgamma_ratio_data : tgamma_ratio_data.cpp :
[ check-target-builds ../config//is_ci_standalone_run : <build>no ] ;
install tgamma_ratio_data_install : tgamma_ratio_data : <location>bin ;
exe ellint_d2_data : ellint_d2_data.cpp ;
exe ellint_d2_data : ellint_d2_data.cpp /boost/test//included ;
install ellint_d2_data_install : ellint_d2_data : <location>bin ;
exe gamma_P_inva_data : gamma_P_inva_data.cpp : [ check-target-builds ../../multiprecision/config//has_float128 : <source>quadmath : <build>no ] ;
exe gamma_P_inva_data : gamma_P_inva_data.cpp : [ check-target-builds /boost/multiprecision/config//has_float128 : <source>quadmath : <build>no ] ;
install gamma_P_inva_data_install : gamma_P_inva_data : <location>bin ;
exe hyp_2f0_data : hyp_2f0_data.cpp ;
@ -190,7 +192,7 @@ install inv_hyp_data_install : inv_hyp_data : <location>bin ;
exe trig_data : trig_data.cpp ;
install trig_data_install : trig_data : <location>bin ;
exe ellint_e_data : ellint_e_data.cpp ;
exe ellint_e_data : ellint_e_data.cpp /boost/test//included ;
install ellint_e_data_install : ellint_e_data : <location>bin ;
exe hermite_data : hermite_data.cpp ;
@ -199,10 +201,10 @@ install hermite_data_install : hermite_data : <location>bin ;
exe hyp_2f1_data : hyp_2f1_data.cpp ;
install hyp_2f1_data_install : hyp_2f1_data : <location>bin ;
exe jacobi_theta_data : jacobi_theta_data.cpp ;
exe jacobi_theta_data : jacobi_theta_data.cpp /boost/test//included ;
install jacobi_theta_data_install : jacobi_theta_data : <location>bin ;
exe jacobi_zeta_data : jacobi_zeta_data.cpp ;
exe jacobi_zeta_data : jacobi_zeta_data.cpp /boost/test//included ;
install jacobi_zeta_data_install : jacobi_zeta_data : <location>bin ;
exe zeta_data : zeta_data.cpp :
@ -215,8 +217,8 @@ install generate_test_values_install : generate_test_values : <location>bin ;
exe igamma_temme_large_coef : igamma_temme_large_coef.cpp ;
install igamma_temme_large_coef_install : igamma_temme_large_coef : <location>bin ;
exe lanczos_generator : lanczos_generator.cpp ../../chrono/build//boost_chrono ../../system/build//boost_system :
[ check-target-builds ../../multiprecision/config//has_float128 : <source>quadmath : <build>no ]
exe lanczos_generator : lanczos_generator.cpp /boost/chrono//boost_chrono /boost/system//boost_system :
[ check-target-builds /boost/multiprecision/config//has_float128 : <source>quadmath : <build>no ]
[ requires cxx11_nullptr ] ;
install lanczos_generator_install : lanczos_generator : <location>bin ;
@ -228,11 +230,11 @@ install generate_rational_test_install : generate_rational_test : <location>bin
#for local source in [ glob *_data.cpp ] generate_test_values.cpp igamma_temme_large_coef.cpp lanczos_generator.cpp factorial_tables.cpp generate_rational_test.cpp
#{
# exe $(source:B) : $(source) : [ check-target-builds ../../multiprecision/config//has_gmp : <define>HAS_GMP <source>gmp : <build>no ] [ check-target-builds ../../multiprecision/config//has_mpfr : <define>HAS_MPFR <source>mpfr : <build>no ] [ check-target-builds ../../multiprecision/config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi ] ;
# exe $(source:B) : $(source) : [ check-target-builds /boost/multiprecision/config//has_gmp : <define>HAS_GMP <source>gmp : <build>no ] [ check-target-builds /boost/multiprecision/config//has_mpfr : <define>HAS_MPFR <source>mpfr : <build>no ] [ check-target-builds /boost/multiprecision/config//has_mpfi : <define>HAS_MPFI <source>gmp <source>mpfr <source>mpfi ] ;
# install $(source:B)_bin : $(source:B) : <location>bin ;
#}
exe generate_rational_code : generate_rational_code.cpp ;
exe process_perf_results : process_perf_results.cpp ;
exe process_perf_results : process_perf_results.cpp /boost/format//boost_format ;
install bin : generate_rational_code process_perf_results ;

View File

@ -17,11 +17,11 @@ using namespace boost::math::tools;
using namespace boost::math;
using namespace std;
#include <libs/math/test/table_type.hpp>
#include <table_type.hpp>
#define T double
#define SC_(x) static_cast<double>(x)
#include <libs/math/test/ibeta_int_data.ipp>
#include <ibeta_int_data.ipp>
int main(int, char* [])
{

View File

@ -24,7 +24,7 @@
#include <boost/multiprecision/mpfr.hpp>
#include <fstream>
#include <libs/math/test/table_type.hpp>
#include <table_type.hpp>
using namespace boost::math::tools;
using namespace boost::math;
@ -91,7 +91,7 @@ int main(int, char* [])
boost::math::quadrature::exp_sinh<big_t> integrator(10);
using T = float;
#include <libs/math/test/nct.ipp>
#include <nct.ipp>
for (unsigned i = 0; i < nct.size(); ++i)
@ -127,7 +127,7 @@ int main(int, char* [])
std::cout << cdf << "), SC_(" << ccdf << ") }}," << std::endl;
}
#include <libs/math/test/nct_small_delta.ipp>
#include <nct_small_delta.ipp>
for (unsigned i = 0; i < nct_small_delta.size(); ++i)
{
big_t error1, error2;