diff --git a/.drone.star b/.drone.star index 5c4cc5db8a..7b773dda7d 100644 --- a/.drone.star +++ b/.drone.star @@ -16,6 +16,7 @@ windowsglobalimage="cppalliance/dronevs2019" def main(ctx): things_to_test = [ "special_fun", "distribution_tests", "mp", "misc", "interpolators", "quadrature", "autodiff", "long-running-tests", "float128_tests" ] + gcc13_things_to_test = [ "special_fun", "distribution_tests", "mp", "misc", "interpolators", "quadrature", "autodiff", "long-running-tests", "float128_tests", "new_floats" ] sanitizer_test = [ "special_fun", "distribution_tests", "misc", "interpolators", "quadrature", "float128_tests" ] gnu_5_stds = [ "gnu++14", "c++14" ] gnu_6_stds = [ "gnu++14", "c++14", "gnu++17", "c++17" ] @@ -23,6 +24,7 @@ def main(ctx): gnu_9_stds = [ "gnu++14", "c++14", "gnu++17", "c++17", "gnu++2a", "c++2a" ] clang_10_stds = [ "c++14", "c++17", "c++2a" ] gnu_non_native = [ "gnu++17" ] + gcc13_stds = [ "c++23" ] result = [] @@ -59,6 +61,9 @@ def main(ctx): result.append(linux_cxx("Ubuntu g++ ARM64" + cxx + " " + suite, "g++", packages="g++", buildtype="boost", image="cppalliance/droneubuntu2204:multiarch", arch="arm64", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv)) for cxx in gnu_non_native: result.append(osx_cxx("M1 Clang " + cxx + " " + suite, "clang++", buildscript="drone", buildtype="boost", xcode_version="14.1", environment={'TOOLSET': 'clang', 'CXXSTD': cxx, 'TEST_SUITE': suite, 'DEFINE': 'BOOST_MATH_NO_REAL_CONCEPT_TESTS,BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS,BOOST_MATH_MULTI_ARCH_CI_RUN', }, globalenv=globalenv)) + for suite in gcc13_things_to_test: + for cxx in gcc13_stds: + result.append(linux_cxx("Ubuntu g++-13 " + cxx + " " + suite, "g++-13", packages="g++-13", buildtype="boost", image="cppalliance/droneubuntu2304:1", environment={'TOOLSET': 'gcc', 'COMPILER': 'g++-13', 'CXXSTD': cxx, 'TEST_SUITE': suite, }, globalenv=globalenv)) return result diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 388a06c0b2..f446b5c48a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,6 +9,7 @@ on: branches: - master - develop + - feature/** pull_request: release: types: [published, created, edited] @@ -47,7 +48,7 @@ jobs: if: steps.retry1.outcome=='failure' run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" - name: Install packages - run: sudo apt install g++-12 clang-14 libgmp-dev libmpfr-dev libfftw3-dev + run: sudo apt-get install -y g++-12 clang-14 libgmp-dev libmpfr-dev libfftw3-dev - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update tools/boostdep @@ -75,7 +76,7 @@ jobs: run: ./config_info_travis working-directory: ../boost-root/libs/config/test - name: Test - run: ../../../b2 toolset=$TOOLSET ${{ matrix.suite }} define=CI_SUPPRESS_KNOWN_ISSUES define=SLOW_COMPILER + run: ../../../b2 toolset=$TOOLSET ${{ matrix.suite }} define=CI_SUPPRESS_KNOWN_ISSUES define=SLOW_COMPILER define=BOOST_MATH_RUN_MP_TESTS working-directory: ../boost-root/libs/math/test ubuntu-focal-no-eh: runs-on: ubuntu-20.04 @@ -105,7 +106,7 @@ jobs: if: steps.retry1.outcome=='failure' run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" - name: Install packages - run: sudo apt install g++-9 g++-11 clang-9 clang-10 libgmp-dev libmpfr-dev libfftw3-dev + run: sudo apt-get install -y g++-9 g++-11 clang-9 clang-10 libgmp-dev libmpfr-dev libfftw3-dev - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update tools/boostdep @@ -214,7 +215,7 @@ jobs: run: config_info_travis working-directory: ../boost-root/libs/config/test - name: Test - run: ..\..\..\b2 --hash %ARGS% define=CI_SUPPRESS_KNOWN_ISSUES debug-symbols=off ${{ matrix.suite }} + run: ..\..\..\b2 --hash %ARGS% define=CI_SUPPRESS_KNOWN_ISSUES debug-symbols=off ${{ matrix.suite }} pch=off working-directory: ../boost-root/libs/math/test windows_gcc: runs-on: windows-2019 @@ -299,7 +300,7 @@ jobs: run: config_info_travis working-directory: ../boost-root/libs/config/test - name: Test - run: ..\..\..\b2 --hash %ARGS% define=CI_SUPPRESS_KNOWN_ISSUES ${{ matrix.suite }} + run: ..\..\..\b2 --hash %ARGS% define=CI_SUPPRESS_KNOWN_ISSUES ${{ matrix.suite }} pch=off working-directory: ../boost-root/libs/math/test cygwin: runs-on: windows-latest @@ -364,7 +365,7 @@ jobs: if: steps.retry1.outcome=='failure' run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" - name: Install packages - run: sudo apt install g++-10 libgmp-dev libmpfr-dev libfftw3-dev + run: sudo apt-get install -y g++-10 libgmp-dev libmpfr-dev libfftw3-dev - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update tools/boostdep @@ -404,7 +405,7 @@ jobs: if: steps.retry1.outcome=='failure' run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" - name: Install packages - run: sudo apt install clang-10 libgmp-dev libmpfr-dev libfftw3-dev + run: sudo apt-get install -y clang-10 libgmp-dev libmpfr-dev libfftw3-dev libtbb-dev - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update tools/boostdep @@ -448,7 +449,7 @@ jobs: if: steps.retry1.outcome=='failure' run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test" - name: Install packages - run: sudo apt install g++-10 libgmp-dev libmpfr-dev libfftw3-dev + run: sudo apt-get install -y g++-10 libgmp-dev libmpfr-dev libfftw3-dev - name: Checkout main boost run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root - name: Update tools/boostdep diff --git a/README.md b/README.md index 6363e01527..07c6c4604b 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,7 @@ Boost Math Library [![Build Status](https://drone.cpp.al/api/badges/boostorg/math/status.svg)](https://drone.cpp.al/boostorg/math)[![Build Status](https://github.com/boostorg/math/workflows/CI/badge.svg?branch=develop)](https://github.com/boostorg/math/actions) ================== ->ANNOUNCEMENT: Support for C++11 will be deprecated in this library starting in July 2023 (Boost 1.82). ->New features will require *at least* C++14, as will existing features starting with the deprecation release. +>ANNOUNCEMENT: This library now requires a compliant C++14 compiler. This library is divided into several interconnected parts: diff --git a/doc/background/references.qbk b/doc/background/references.qbk index b4d625c01c..b6f3246348 100644 --- a/doc/background/references.qbk +++ b/doc/background/references.qbk @@ -34,7 +34,7 @@ The Wolfram Research Documentation Center is a collection of online reference ma Statistical Distributions (Wiley Series in Probability & Statistics) (Paperback) by N.A.J. Hastings, Brian Peacock, Merran Evans, ISBN: 0471371246, Wiley 2000. -[@http://www.worldscibooks.com/mathematics/p191.html Extreme Value Distributions, Theory and Applications] +[@https://www.google.com/books/edition/Extreme_Value_Distributions/GwBqDQAAQBAJ?hl=en&gbpv=0 Extreme Value Distributions, Theory and Applications] Samuel Kotz & Saralees Nadarajah, ISBN 978-1-86094-224-2 & 1-86094-224-5 Oct 2000, Chapter 1.2 discusses the various extreme value distributions. diff --git a/doc/distributions/exponential.qbk b/doc/distributions/exponential.qbk index e8b61de7b2..043818b4a4 100644 --- a/doc/distributions/exponential.qbk +++ b/doc/distributions/exponential.qbk @@ -93,7 +93,7 @@ In the following table [lambda] is the parameter lambda of the distribution, (See also the reference documentation for the related __extreme_distrib.) * -[@http://www.worldscibooks.com/mathematics/p191.html Extreme Value Distributions, Theory and Applications +[@https://www.google.com/books/edition/Extreme_Value_Distributions/GwBqDQAAQBAJ?hl=en&gbpv=0 Extreme Value Distributions, Theory and Applications Samuel Kotz & Saralees Nadarajah] discuss the relationship of the types of extreme value distributions. diff --git a/doc/distributions/extreme_value.qbk b/doc/distributions/extreme_value.qbk index 26b110a674..314917ebc1 100644 --- a/doc/distributions/extreme_value.qbk +++ b/doc/distributions/extreme_value.qbk @@ -38,7 +38,7 @@ websites. The relationship of the types of extreme value distributions, of which this is but one, is discussed by -[@http://www.worldscibooks.com/mathematics/p191.html Extreme Value Distributions, Theory and Applications +[@https://www.google.com/books/edition/Extreme_Value_Distributions/GwBqDQAAQBAJ?hl=en&gbpv=0 Extreme Value Distributions, Theory and Applications Samuel Kotz & Saralees Nadarajah]. The distribution has a PDF given by: diff --git a/doc/distributions/hypergeometric.qbk b/doc/distributions/hypergeometric.qbk index b9c2181fa0..4175f720c3 100644 --- a/doc/distributions/hypergeometric.qbk +++ b/doc/distributions/hypergeometric.qbk @@ -15,11 +15,11 @@ typedef RealType value_type; typedef Policy policy_type; // Construct: - hypergeometric_distribution(unsigned r, unsigned n, unsigned N); // r=defective/failures/success, n=trials/draws, N=total population. + hypergeometric_distribution(uint64_t r, uint64_t n, uint64_t N); // r=defective/failures/success, n=trials/draws, N=total population. // Accessors: - unsigned total()const; - unsigned defective()const; - unsigned sample_count()const; + uint64_t total()const; + uint64_t defective()const; + uint64_t sample_count()const; }; typedef hypergeometric_distribution<> hypergeometric; @@ -56,20 +56,20 @@ then we obtain basically the same graphs: [h4 Member Functions] - hypergeometric_distribution(unsigned r, unsigned n, unsigned N); + hypergeometric_distribution(uint64_t r, uint64_t n, uint64_t N); Constructs a hypergeometric distribution with a population of /N/ objects, of which /r/ are defective, and from which /n/ are sampled. - unsigned total()const; + uint64_t total()const; Returns the total number of objects /N/. - unsigned defective()const; + uint64_t defective()const; Returns the number of objects /r/ in population /N/ which are defective. - unsigned sample_count()const; + uint64_t sample_count()const; Returns the number of objects /n/ which are sampled from the population /N/. @@ -87,7 +87,7 @@ and Python All the [link math_toolkit.dist_ref.nmp usual non-member accessor functions] that are generic to all distributions are supported: __usual_accessors. -The domain of the random variable is the unsigned integers in the range +The domain of the random variable are the 64-bit unsigned integers in the range \[max(0, n + r - N), min(n, r)\]. A __domain_error is raised if the random variable is outside this range, or is not an integral value. diff --git a/doc/distributions/triangular.qbk b/doc/distributions/triangular.qbk index 52a0b0f0a2..cd48f3310a 100644 --- a/doc/distributions/triangular.qbk +++ b/doc/distributions/triangular.qbk @@ -38,7 +38,7 @@ The triangular distribution is often used where the distribution is only vaguely but, like the [@http://en.wikipedia.org/wiki/Uniform_distribution_%28continuous%29 uniform distribution], upper and limits are 'known', but a 'best guess', the mode or center point, is also added. It has been recommended as a -[@http://www.worldscibooks.com/mathematics/etextbook/5720/5720_chap1.pdf proxy for the beta distribution.] +[@https://www.jstor.org/stable/2988573 proxy for the beta distribution.] The distribution is used in business decision making and project planning. The [@http://en.wikipedia.org/wiki/Triangular_distribution triangular distribution] diff --git a/doc/distributions/weibull.qbk b/doc/distributions/weibull.qbk index 205e056be1..95c9e461e2 100644 --- a/doc/distributions/weibull.qbk +++ b/doc/distributions/weibull.qbk @@ -59,7 +59,7 @@ When ['[alpha]] = 1, the Weibull distribution reduces to the [@http://en.wikipedia.org/wiki/Exponential_distribution exponential distribution]. The relationship of the types of extreme value distributions, of which the Weibull is but one, is discussed by -[@http://www.worldscibooks.com/mathematics/p191.html Extreme Value Distributions, Theory and Applications +[@https://www.google.com/books/edition/Extreme_Value_Distributions/GwBqDQAAQBAJ?hl=en&gbpv=0 Extreme Value Distributions, Theory and Applications Samuel Kotz & Saralees Nadarajah]. diff --git a/doc/graphs/fourier_transform_daubechies.png b/doc/graphs/fourier_transform_daubechies.png new file mode 100644 index 0000000000..5027d9f538 Binary files /dev/null and b/doc/graphs/fourier_transform_daubechies.png differ diff --git a/doc/html/math_toolkit/dist_ref/dists/exp_dist.html b/doc/html/math_toolkit/dist_ref/dists/exp_dist.html index 29fc22d4a7..bfaa7c65b7 100644 --- a/doc/html/math_toolkit/dist_ref/dists/exp_dist.html +++ b/doc/html/math_toolkit/dist_ref/dists/exp_dist.html @@ -305,7 +305,7 @@
Distributions.)