560 Commits

Author SHA1 Message Date
René Ferdinand Rivera Morell
41f07b0794
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>
2024-09-06 08:45:23 -04:00
Matt Borland
c9be742a98
Fix example 2024-02-22 10:01:55 +01:00
Nick Thompson
b7a62c4a29 TLC for optimization docs 2024-02-12 14:23:01 -08:00
Nick Thompson
222d266048 CMA-ES 2024-02-09 12:09:53 -08:00
Nick
fccad84bf5
Random search (#1071) 2024-01-24 17:26:24 -08:00
Nick
a1f7a305ee
Algorithm jSO (#1065)
Follows: Brest, Janez, Mirjam Sepesy Maucec, and Borko Boskovic. "Single objective real-parameter optimization: Algorithm jSO." 2017 IEEE congress on evolutionary computation (CEC). IEEE, 2017.
2024-01-22 14:06:52 -08:00
Nick
de9a1a0ee5
Fix race conditions in differential evolution (#1063)
Through a combination of silly mistakes, I missed a pile of race conditions in the OpenMP threading.

Switch to C++ threading. Note that this change requires serial generation of trial vectors.

Hopefully I can figure out to parallelize the generation of trial vectors to reduce the serial section a la Ahmdahl's law,
while simultaneously keeping thread sanitizer happy.
2024-01-17 10:20:41 -08:00
Matt Borland
79b4015d4d
Add codecov run to CI (#1061)
Co-authored-by: Alexander Grund <Flamefire@users.noreply.github.com>
2024-01-05 09:00:24 +01:00
Nick
4ee83916c5
Differential evolution (#1062)
* Differential evolution

---------

Co-authored-by: Matt Borland <matt@mattborland.com>
2024-01-01 17:09:16 -08:00
ryanelandt
2c74b149b0
has_denorm_now (#1029)
* initial commit

* remove == std::denorm_present

* remove extra ) in ccmath/next
2023-10-30 09:37:29 +01:00
Nick
7887d43f83
Numerical evaluation of Fourier transform of Daubechies scaling funct… (#921)
* Numerical evaluation of Fourier transform of Daubechies scaling functions.

* Update example/calculate_fourier_transform_daubechies_constants.cpp

Co-authored-by: Matt Borland <matt@mattborland.com>

* Update example/fourier_transform_daubechies_ulp_plot.cpp

Co-authored-by: Matt Borland <matt@mattborland.com>

* Update include/boost/math/special_functions/fourier_transform_daubechies_scaling.hpp

Co-authored-by: Matt Borland <matt@mattborland.com>

* Update include/boost/math/special_functions/fourier_transform_daubechies_scaling.hpp

Co-authored-by: Matt Borland <matt@mattborland.com>

* Rename include file to reflect it implements both the scaling and wavelet.

* Add performance to docs.

* Update test/math_unit_test.hpp

Co-authored-by: Matt Borland <matt@mattborland.com>

* Add boost-no-inspect to files with non-ASCII characters.

---------

Co-authored-by: Matt Borland <matt@mattborland.com>
2023-06-13 08:05:00 -07:00
Matt Borland
77c8e2aa14
Remove unneeded boost library includes 2023-03-09 08:26:46 -08:00
Nick
4aac532a88
Add Estrin's method for polynomial evaluation (#932)
* Add Estrin's method for polynomial evaluation

N.B.: This is a slightly modified version of the code provided by Thomas Dybdahl Ahle in a github issue.

[CI SKIP] [ci skip]

* Add comparisons to Horner with std::array.
[CI SKIP]

* Add Estrin's method for polynomial evaluation

N.B.: This is a slightly modified version of the code provided by Thomas Dybdahl Ahle in a github issue.

[CI SKIP] [ci skip]

* Fix hang in n=0 case.

* Fix out of bounds access in test.

* Fix endsect for estrin.qbk.

* Apply clang-format to make the 'inspect' stage happy.

* Add type_traits header to includes.

* Add ulp plot.

* Document decreased accuracy of Estrin's method.

* Add assertion for size of scratch pad

* Remove std::size since it is C++17

* Add C++14 testing

* estrin -> evaluate_polynomial_estrin.

---------

Co-authored-by: jzmaddock <john@johnmaddock.co.uk>
Co-authored-by: Matt Borland <matt@mattborland.com>
2023-02-04 10:32:06 -08:00
Rose
dbb1ae7667 Use cfloat instead of float.h
It would be more consistent to use the C++ headers instead of the C ones.
2022-12-09 11:07:42 -05:00
Rose
fe48a3bba7 Junk removal
Removal of junk headers, typos, or mistakenly duplicated keywords
2022-11-05 12:14:12 -04:00
jzmaddock
ddf0143a8c
BREAKING CHANGE: Correct definition of user_rounding_error, (#836)
* BREAKING CHANGE: Correct definition of user_rounding_error,
To return correct type.
Likewise fix up a few other rounding error inconsistencies.
Fixes https://github.com/boostorg/math/issues/834.

* Remove redundant error handler.
2022-10-09 09:14:27 +01:00
Jonathan Wakely
b3cec0c732
Replace non-UTF-8 copyright character 2022-06-14 17:55:04 +01:00
Warren Weckesser
222b81e019 Fix repeated name in example/policy_eg_1.cpp 2022-04-13 15:42:51 -04:00
jzmaddock
5da27935f2 Added further color table example. 2022-03-10 19:33:51 +00:00
Matt Borland
3e950d9e3a
Color Maps (#752)
* Color Maps

* Make color maps constexpr

[ci skip]

* Add newton fractal example

[ci skip]

* Remove some unused code.

* Make the color map base class generic in size

Fix naming convention
[ci skip]

* Begin documentation.

* Move helper functions from example into tools header

[ci skip]

* Update docs and remove non-ASCII characters from example

* Add image to docs

* Reduce size of virdis_newton_fractal from 1.31MB to 131KB

[ci skip]

* Add performance file

* Don't force linear complexity and fix CI failure for old clang versions

* Convert color_maps to free functions.

* Add missing header and remove constexpr test

* Convert tabs to spaces

[ci skip]

* Fix compile tests and make static constexpr uniform across data

* Add swatches to docs.

* Fix image links in docs

[ci skip]

Co-authored-by: Nick Thompson <nathompson7@protonmail.com>
2022-02-09 11:19:38 +01:00
jzmaddock
7850b8c2dd Correct some CI test failures.
Stop referencing boost::lexical_cast even in templates which aren't instantiated.
Fix missing macro definition in tr1.hpp.
Correct include order in some tests so we get consistent definitions for BOOST_HAS_FLOAT128.
2022-01-17 19:37:08 +00:00
Matt Borland
e1601f129a
Complete CI test with standalone mode (#680) 2022-01-14 08:12:22 -08:00
jzmaddock
d4de174bbb Prep for 1.77:
Rework hypergeometric distro equations.
Fix up Fibonacci docs.
Fix Fibonacci constexpr and noexcept usage and add to testing.
Regenerate docs.
2021-06-27 19:38:05 +01:00
Nick
0cd6039cb1
Minimax and distribution_explorer to examples. (#620)
* Minimax and distribution_explorer to examples.

* Move minimax to tools.
2021-05-03 09:12:58 -04:00
Matt Borland
12b3c8a7e7
Standalone tests (#606)
* Add missing distribution compile tests

* Add cstdfloat compile tests

* Rename and finish differentiation

* Add interpolators compile tests and fixes

* Reorganize/add quadrature compile tests

* Add missing sf tests and fixes for failures

* Add tools incl tests and fixes

* Add compile tests to jamfile plus collected fixes

* Collected fixes for CI failures

* Fix fftw config

* Remove lexical cast from arcsine dist [ci skip]

* Improve cstdfloat tests [ci skip]

* Improve differentiation tests [ci skip]

* Improve distribution testing [ci skip]

* Updates to interpolator tests [ci skip]

* Improve quadrature tests [ci skip]

* Improve sf tests [ci skip]

* Improve tools tests

* Collected CI fixes

* Fix for MSVC 14.2 array allocation error
[windows]

* MSVC 14.2 workarounds
[windows]

* Fix float128 and interpolators tests

* Add standalone testing on clang
[standalone]

* Fixes for type mismatches on MSVC
[windows]

* Fix for MSVC 14.0 fail from missing header
[windows]

* Change barycentric rational namespace
[ci skip]

* Fix standalone clang warnings

* Change namespace in barycentric examples
2021-04-22 14:44:21 -04:00
jzmaddock
adcf95b784
Merge pull request #597 from mborland/standalone
Complete Standalone Mode
2021-04-04 17:35:10 +01:00
jzmaddock
e074db139c
Merge pull request #599 from pratik-a/develop
return added
2021-04-04 09:17:21 +01:00
PRATIK AWASTHI
19d86ffa89 return added 2021-04-04 02:43:06 +05:30
jzmaddock
544258569b Fixes for inspect failures in doc/ and example/ 2021-03-30 11:04:16 +01:00
Matt Borland
ea323e6e1b
Remove boost.lexical_cast dependency 2021-03-29 19:59:29 +03:00
Matt Borland
18af162377
Change include directories 2021-03-27 18:09:38 +03:00
Matt Borland
c79965c46c
Add CMake Link Flags and Reduce CI for testing 2021-03-27 17:51:40 +03:00
Matt Borland
2c4c1a04e8
Get examples working with CMake and Standalone
[ci skip]
2021-03-27 14:41:59 +03:00
Matt Borland
070c1ceb78
Remove BOOST_CONSTEXPR 2021-03-23 20:32:55 +03:00
Matt Borland
8ebac14382
Bulk replacement of BOOST_MSVC 2021-03-23 18:39:09 +03:00
Matt Borland
26711525ca
Remove uses of boost/cstdint without header called 2021-03-21 16:13:10 +03:00
Matt Borland
8c4bac90e9
Cleanup examples 2021-03-21 09:14:15 +03:00
Matt Borland
d6a04ab194
Remove all BOOST_MATH_STATIC_ASSERT_MSG 2021-03-16 22:42:09 +03:00
Matt Borland
c1f7a55aa6
Merge remote-tracking branch 'origin/develop' into assert [ci skip] 2021-03-16 20:30:05 +03:00
Madhur Chauhan
68d6a75f7c
Fibonacci numbers (#376)
* Fibonacci: Initial commit. Working.

* Fibonacci: Address Nick's comments. Added unchecked factorial.

* Fibonacci: Improved overflow testing

* Fibonacci: Added unit tests

* Fibonacci: Performance report

* Fibonacci: Nick's comments - Complexity

* Fibonacci: Add UT to Jamfile

* Make Fibonacci and UT C++03 friendly.

Add UT to Jamfile.

* Fibonacci: Remove GMP dependency

* 1. Added fibonacci generator with unit tests
2. Added example of reciprocal fibonacci constant

* [CI SKIP] Fibonacci: First cut at documentation

* Fibonacci: Finishing up changes [CI SKIP]

* Fibonacci: Removing unnecessary html files

* fibonacci: rename to unchecked_fibonacci

* fibonacci: remove documentation

Co-authored-by: Created by Ansible <madhur@dev-sng-build1.kdev>
2021-03-16 09:11:10 -04:00
Matt Borland
fbadd8d653
remove boost.static_assert 2021-03-14 12:49:38 +03:00
Matt Borland
d59c734c5e
Remove boost.assert 2021-03-14 12:22:26 +03:00
jzmaddock
93467954a9 Fix up Jamfiles for C++11 s a requirement.
Fixes: https://github.com/boostorg/math/issues/531.
2021-02-13 19:40:50 +00:00
Nick
cbd2af2890
Cohen acceleration (#415)
* Cohen acceleration

Accelerates convergence of an alternating series by a method designed by Cohen, Villegas, and Zagier.
2020-08-09 09:55:56 -04:00
Nick
ee2cd5d5e5
Luroth expansions (#401) 2020-07-18 09:28:39 -04:00
Nick
fbb62f01c5
Centered continued fractions (#379)
* Centered continued fraction [CI SKIP]

* Document centered cfrac. [CI SKIP]

* Unit tests for centered continued fraction [CI SKIP]

* Kick off build.

* Fix syntax error in docs [CI SKIP]

* Fix ADL.
2020-06-28 14:20:52 -04:00
Nick
1ac89b2b02
Simple continued fraction (#377)
* Simple continued fraction [CI SKIP]

* Comments on error analysis [CI SKIP]

* Simple continued fraction [CI SKIP]

* Clarify comment and kick off build.
2020-06-26 14:50:04 -04:00
Nick
7bffe68938 Fix agm_example.cpp build on Windows. [CI SKIP] 2020-05-31 13:01:39 -04:00
Nick
9a45e6a358
AGM 2020-05-29 21:50:25 -04:00
Nick
3c3217d2cd
Remove some internal dependencies for Daubechies wavelets. (#356) 2020-05-20 14:07:19 -04:00