Commit Graph

2240 Commits

Author SHA1 Message Date
jzmaddock
b5eb687556 Tanh_sinh: Fix for https://github.com/boostorg/math/issues/155. 2018-11-14 18:55:11 +00:00
jzmaddock
20cab7704e Merge branch 'hypergeometric_soc_2014' of https://github.com/boostorg/math into hypergeometric_soc_2014 2018-11-12 19:39:18 +00:00
jzmaddock
2a3dfb5030 1F1: add some more (currently unused) evaluation methods. 2018-11-12 19:39:06 +00:00
Nick Thompson
b306f54bee Silence incredibly verbose -Wsign-compare warning emitted from gcc 8. 2018-11-12 11:51:54 -07:00
jzmaddock
b8839ad167 1F1: Rationalise method selection logic - more tests fail but the code is in overall better shape.
[CI SKIP]
2018-11-10 17:51:40 +00:00
jzmaddock
bfb204937e Hypergeometric 1F1: Tentatively fix more issues. 2018-11-07 16:23:35 +00:00
Nick Thompson
381f663517 Merge and run CI 2018-10-28 23:27:41 -06:00
Nick Thompson
3f5e730d03 Fix compilation error by including trunc.hpp 2018-10-27 16:01:20 -06:00
jzmaddock
f066827858 1F1: Improve large-z asymptotic region.
[CI SKIP]
2018-10-25 10:42:26 +01:00
jzmaddock
b329c74f5a Add missing include. 2018-10-23 19:56:07 +01:00
jzmaddock
841233f034 Fix more F cases. 2018-10-23 19:50:29 +01:00
jzmaddock
62ef341156 Merge branch 'hypergeometric_soc_2014' of https://github.com/boostorg/math into hypergeometric_soc_2014
Fixed Conflicts:
	include/boost/math/special_functions/detail/hypergeometric_series.hpp
	include/boost/math/special_functions/hypergeometric_1F1.hpp
2018-10-23 19:49:30 +01:00
jzmaddock
d8225e6b06 hypergeometric_1F1: rework to better handle over/underflow. 2018-10-23 19:29:02 +01:00
Nick Thompson
60edddae72 Add Laplace and Mellin transform test so that 1F1 is tested over its entire domain. 2018-10-23 10:23:23 -06:00
Nick Thompson
1791a4b597 Make casing of pFq, 0F1, 1F1, etc, uniform. Make filename casing uniform to prevent compiler warnings/errors on non-portable include paths. 2018-10-22 14:13:29 -06:00
jzmaddock
a7c68f1c87 hypergeometrics: Update Jamfile so it can build the tests.
Fix missing includes in hypergeometric_0f1_bessel.hpp.
Remove unneeded includes from test files.
2018-10-22 18:46:15 +01:00
Nick Thompson
885cb0d998 Replace exp(z) -1 by expm1(z) to improve accuracy for small |z|. 2018-10-22 10:40:07 -06:00
jzmaddock
8de36dd6f8 hypergeometric_1F1: better comments and 2 more degenerate cases.
[CI SKIP]
2018-10-20 10:09:37 +01:00
jzmaddock
833b4c9b5f hypergeometric_1F1: begin to fix up remaining difficult cases.
Adds a checked series for those we can't fix.
[CI SKIP]
2018-10-20 09:58:11 +01:00
jzmaddock
52079d2d23 Merge branch 'develop' into hypergeometric_soc_2014
Fixed Conflicts:
	doc/equations/generate.sh
2018-10-18 11:11:13 +01:00
jzmaddock
d78af61023 Tentative fix for MacOS X test failure in relative_difference. 2018-10-15 13:48:56 +01:00
jzmaddock
5eca86157b Modify tanh_sinh to work with complex integrals. 2018-10-08 20:45:15 +01:00
Nikita Kniazev
5152160fea
constants: Removed extra semicolons 2018-10-01 18:37:45 +03:00
jzmaddock
34e6afacc2 Fixes that allow Math to be used with multiprecision::mpfr_float. 2018-09-26 18:10:05 +01:00
jzmaddock
bfabc65564
Merge pull request #150 from boostorg/remove_endian_deprecated
Remove deprecation warning from the BOOST_BIG_ENDIAN and BOOST_LITTLE…
2018-09-14 17:29:49 +01:00
Nick Thompson
6ec5838685 Change #if defined(BOOST_ENDIAN_*_BYTE) to #if BOOST_ENDIAN_*_BYTE on the advice of code review from pdimov. 2018-09-12 11:37:31 -06:00
Nick Thompson
a180b490f2 Remove deprecation warning from the BOOST_BIG_ENDIAN and BOOST_LITTLE_ENDIAN macros. 2018-09-12 10:20:05 -06:00
jzmaddock
95680e179d
Merge pull request #121 from boostorg/rational_derivatives
Add derivative of barycentric rational interpolation.
2018-09-04 13:01:31 +01:00
jzmaddock
0f02355a1c LambertW: remove dead file and move lambert_w_lookup_table.ipp into /detail/.
[CI SKIP]
2018-09-02 18:00:07 +01:00
jzmaddock
628ffd1c80
Merge branch 'develop' into rational_derivatives 2018-09-02 12:58:59 +01:00
jzmaddock
79871fe747 LambertW: CI fixes.
Fix definition of lambert_w0_small_z_series_term.
Move rational approximations into smaller functions to try and keep msvc happy.
2018-08-31 19:53:34 +01:00
jzmaddock
02c7df005d LambertW: Fix more CI failures:
Add fallback for 128-bit lambertW implementation.
Disable real_concept tests for msvc-12 and earlier as the compiler can't cope.
2018-08-31 09:56:03 +01:00
jzmaddock
982d82b2b5 LambertW: Hook up real_concept tests and fix resulting errors. 2018-08-30 19:48:27 +01:00
jzmaddock
3104f3ad79 LambertW: Fix for types with no numeric_limits.
Configuration fix for __float128 support.
2018-08-30 18:47:40 +01:00
jzmaddock
364952fd8a LambertW: pedantic changes to docs.
[CI SKIP]
2018-08-30 18:21:28 +01:00
jzmaddock
bed980e202 Merge branch 'develop' into lambertw 2018-08-30 10:17:19 +01:00
jzmaddock
3abd04ce50 LambertW: Hook up concept checks, and fix failures. 2018-08-30 08:57:35 +01:00
jzmaddock
45b86cf115 LambertW: Fix up GCC support.
Split tests into smaller units so as not to generate over-large object files.
2018-08-29 19:34:30 +01:00
jzmaddock
10e6f0d68f Lambert W: Add tests near the singularity.
Fix a couple of minor issues in the implementation to improve error rates.
NB: errors very near the singularity are still very high - this is an intrinsic property of the function - we are solving z = w exp(w) for w, but there are actually a wide range of w values which satisfy the equation once we get very close to the singularity.
2018-08-26 19:51:15 +01:00
jzmaddock
d002d1491a LambertW: Tidy up header includes. 2018-08-22 19:31:22 +01:00
jzmaddock
5f495d259e Correct spelling of "boost" ! 2018-08-21 08:34:21 +01:00
jzmaddock
386898c089 Update continued fractions and series:
To support complex types, and better docs.
Fixes: https://github.com/boostorg/math/issues/129.
2018-08-20 21:22:06 +01:00
jzmaddock
7cd5d420da roots.hpp: suppress warning and fix logic error caused by previous commit. 2018-08-20 10:30:37 +01:00
jzmaddock
5d590c812e Prevent logic error leading to infinite loop in toms748_solve.
Fixes: https://github.com/boostorg/math/issues/138.
2018-08-19 18:57:06 +01:00
jzmaddock
d7d6b1a99b Fix mean and standard_deviation for extreme_value_distribution.
Fixes: https://github.com/boostorg/math/issues/139.
2018-08-19 17:46:52 +01:00
jzmaddock
91c193d2d2 Improve heuristics used in newton_raphson_iterate.
Copies heuristics already in place for halley_iterate for the case where convergence fails.
Fixes: https://github.com/boostorg/math/issues/145
2018-08-19 16:27:45 +01:00
jzmaddock
26e2e61de9 Fix erf(NaN).
Fixes https://github.com/boostorg/math/issues/141
2018-08-19 09:28:37 +01:00
jzmaddock
9e3bf4e3e1 Fix for platforms where we have no atomic types: fixes https://github.com/boostorg/math/issues/134. 2018-07-30 18:15:31 +01:00
jzmaddock
bdb3f0e903 Fix for integer overflow in exponent calculation on decimal types in next.hpp: See https://github.com/boostorg/math/issues/135 2018-07-29 18:12:35 +01:00
pabristow
aaa38c3fee first draft of no-precision policy version. 2018-07-17 17:39:27 +01:00
pabristow
691f2a5852 Integration tests improved with simpler lambert W 2018-07-11 15:42:19 +01:00
Lakshay Garg
c275bf655e Refactor the polynomial addition function
* Remove in-loop calls to push_back thus eliminating the
  possibility of multiple reallocations of memory to the
  underlying vector.
* Remove redundant `sign` parameter from the addition method
* Delete the unused `detail::identity` struct
2018-06-25 02:46:25 -07:00
jzmaddock
838dd94193 sinc_pi: simplify and correct taylor series usage, improve tests.
See https://svn.boost.org/trac10/ticket/13606.
2018-06-19 18:26:43 +01:00
jzmaddock
ed83cdda6f Merge branch 'develop' of https://github.com/boostorg/math into develop 2018-06-17 19:16:57 +01:00
jzmaddock
658945d508 Improve sinc approximations and add better tests.
Fixes: https://svn.boost.org/trac10/ticket/13606 and https://svn.boost.org/trac10/ticket/13603.
2018-06-17 19:10:46 +01:00
Nick Thompson
cb954798d7 Support for complex-valued integrands in sinh-sinh quadrature. 2018-06-12 13:11:52 +08:00
jzmaddock
2267c6af67 exp_sinh: Regenerate quad precision abscissa and weights. 2018-05-22 19:58:35 +01:00
pabristow
23ecd1a1c0 All changes before getting develop up-to-date. 2018-05-15 14:00:34 +01:00
Nick Thompson
9d22c55d4a Merge branch 'develop' into rational_derivatives 2018-05-05 10:02:02 +08:00
Nick Thompson
0d67b045ae [CI SKIP] Merge branch 'develop' into complex_exp_sinh 2018-05-05 10:00:42 +08:00
Nick Thompson
728b6949ed Complex valued integrand support for exp-sinh quadrature 2018-05-03 12:19:04 +08:00
Nick Thompson
157e33a516 [CI SKIP] Merge develop 2018-05-03 09:22:53 +08:00
Nick Thompson
cc9d1cc7f9 Fix build by replacing fabs->abs. 2018-05-02 12:24:30 +08:00
Nick Thompson
60aa168556 Fix cpp_dec_float. 2018-05-02 09:31:09 +08:00
Nick Thompson
ea6acb3855 [CI SKIP] Real->{Real, Complex} integrand support for Gauss-Kronrod quadrature. 2018-05-01 15:50:55 +08:00
Nick Thompson
df0f02e412 [CI SKIP] Remove 'Control reaches end of non-void function warning.' 2018-05-01 10:45:11 +08:00
jzmaddock
e1a09b1f8e Gauss-complex - functions can still be static, simply error return. 2018-04-30 19:54:08 +01:00
jzmaddock
60640d3497 Merge branch 'develop' into gauss_complex
Simplify error handler return.
2018-04-30 17:59:58 +01:00
jzmaddock
2261ed0a63 Merge branch 'develop' into contour_integration 2018-04-29 09:48:36 +01:00
jzmaddock
72c56026f9 tanh_sinh: improve asserts on internal logic
and document why they might fail.
2018-04-23 18:21:57 +01:00
jzmaddock
b4ec109b83 tanh_sinh: change calculation method used for scaling ranges:
"naive" method is prone to generating a point at the endpoint if the endpoint is large, subtract scaled complement from the endpoint instead.
Open questions:
1) Can this still fail if the endpoint is a very large value?  For example if we have endpoints of [+large, +larger] where the difference between them is small?
2) Do we still need the asserts, or should they be replaced by some other check?
3) If the endpoints are replaced by some other check we could either massage the position to be one representable value below the endpoint, or else simply return 0.  The former risks evaluating at the same point over and over as we go down levels, the latter would seem to be incorrect for functions which do not go to zero at the endpoint.
2018-04-22 19:46:34 +01:00
Nick Thompson
e56e343435 Fix build errors. 2018-04-14 09:38:02 +08:00
Nick Thompson
84d36d785c Add derivative of barycentric rational interpolation. 2018-04-13 20:19:46 +08:00
Nick Thompson
1a75908850 std::result_of->typedef decltype(f(a)). 2018-04-06 10:51:17 +08:00
Nick Thompson
240ed8f770 Merge branch 'contour_integration' into gauss_complex 2018-04-06 09:49:41 +08:00
Nick Thompson
f099ceec9e [CI SKIP] Remove now-unused type_traits header 2018-04-06 09:48:03 +08:00
Nick Thompson
08bfb88181 Get rid of std::result_of/std::invoke_result in favor of typedef decltype(f(a)). 2018-04-05 20:23:54 +08:00
Nick Thompson
13b2070fef [CI SKIP] Update quadrature. 2018-04-05 20:14:16 +08:00
Nick Thompson
969a29a7a4 Merge branch 'contour_integration' into gauss_complex 2018-04-05 13:34:32 +08:00
Nick Thompson
d5aac62f64 auto return requires trailing return type in C++11 mode. 2018-04-03 12:24:24 +08:00
Nick Thompson
90273e12a7 Fix C++11/C++17 incompatibility by typdefs. Increase default max refinements. 2018-04-03 11:07:03 +08:00
Nick Thompson
9bfcbf4a24 Merge branch 'develop' into contour_integration 2018-03-31 14:55:17 +08:00
Nick Thompson
8448d9be98 Make sure that a minimum number of function calls have been achieve before exit in Monte-Carlo integration. 2018-03-22 11:02:16 +08:00
Nick Thompson
cf0201fa3d [CI SKIP] Gaussian quadrature now works with MPC 2018-03-22 10:47:29 +08:00
Nick Thompson
7a3803de05 [CI SKIP] Small diffs to make compilation more smooth. 2018-03-21 11:15:36 +08:00
Nick Thompson
3fb1409f49 Compile and include test also need to have C++11 support now. 2018-03-20 19:16:25 +08:00
Nick Thompson
1f5cea80ff [CI SKIP] Gaussian quadrature to support Real->Complex. 2018-03-18 20:55:11 +08:00
Nick Thompson
3da4c17f1c [CI SKIP] Remove auto. 2018-03-18 14:25:36 +08:00
jzmaddock
64e29bd874 naive_monte_carlo: Set a maximum number of retries and add some diagnostic info for when things go wrong. 2018-03-17 19:05:52 +00:00
jzmaddock
581d203254 naive_monte_carlo: Need to make sure the seed changes between outer loops in m_integrate.
Otherwise we go round and round and never complete if the first inner loop fails.
2018-03-16 11:47:38 +00:00
Nick Thompson
d30b7d62ef Update trapezoidal quadrature so that it can handle contour integrals. 2018-03-16 15:33:25 +08:00
jzmaddock
1ae4e63551 naive_monte_carlo: change tail recursion to do-while loop. 2018-03-15 19:29:38 +00:00
Nick Thompson
529a76b72c Use uint64_t rather than size_t to get some reproducibility on 32 bit platforms. Make sure that the final variance is within the error bounds. 2018-03-13 13:17:22 +08:00
Casey Carter
4921880587
Use constexpr when compiling with clang
Clang compilers do not define `__clang`, they define `__clang__`. (https://godbolt.org/g/R7gX4h)
2018-03-06 17:39:15 -08:00
jzmaddock
e348578b0f erfc: improve accuracy in exp calculation, add error plot generator program. 2018-03-02 19:23:41 +00:00
pabristow
3f1e3602ba Quadrature error diagnosis improved 2018-02-27 13:20:37 +00:00
jzmaddock
b5c4200ea5 Update std_real_concept_tests: we were missing a couple of test cases. 2018-02-24 18:39:14 +00:00
jzmaddock
0e9a9d340a Merge branch 'develop' of https://github.com/boostorg/math into develop
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2018-02-24 16:58:13 +00:00
jzmaddock
7017d658f7 next.hpp: fix forward declaration of real_concept.
[CI SKIP]
2018-02-24 13:13:08 +00:00
jzmaddock
73f85b699a ellint_d: Add some diagnostic code to try and track down some long double errors.
[CI SKIP]
2018-02-24 13:12:25 +00:00
jzmaddock
324a047f1e Uncomment #define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS which appears to have been accidentally disabled.
Disable some long double tests when BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS is set.
2018-02-22 18:25:02 +00:00
pabristow
413766bcdb Added lost prime functions and a ref 2018-02-22 18:18:34 +00:00
jzmaddock
3fa8aadde2 monte carlo integration: document and/or make explicit the semantics of all atomic operations. 2018-02-21 18:11:28 +00:00
pabristow
036dbae137 Return to overflow on inf and tested OK using test_integrals 2018-02-20 17:03:26 +00:00
jzmaddock
ce7a8bc918 monte carlo integration: Change to use unique_ptr rather than map internally.
Fix msvc object size issues.
2018-02-19 19:39:00 +00:00
pabristow
2a34f3c340 Restore current files after merge went wrong. 2018-02-19 17:30:57 +00:00
pabristow
de4d578fc5 deconflict lambert_w.hpp 2018-02-19 16:54:52 +00:00
Nick Thompson
578a1a6ed1 [ci skip] Revert to boost::atomic as std::atomic made things worse. 2018-02-18 22:19:04 -06:00
Nick Thompson
33ce9eb94e Swap out boost::atomic with std::atomic to determine how widespread compiler support is via the CI system. Replace RNG with RandomNumberGenerator to protect against weird macros. 2018-02-18 17:19:42 -06:00
Nick Thompson
cfd81335e9 [ci skip] Fix merge conflict from develop 2018-02-17 18:05:02 -06:00
Nick Thompson
ca66072ac9 [ci skip] Fix infinite limit transforms. Add user option to provide alternative random number generator. Allow deterministic seed for testing, though this is still not fully deterministic. Reduce time between observations. 2018-02-17 17:41:06 -06:00
jzmaddock
c5805cc8bc
Merge pull request #112 from boostorg/NAThompson-patch-1
[ci skip] Fix typo in error message.
2018-02-17 09:19:17 +00:00
jzmaddock
dce923bdf5 Merge branch 'develop' into naive_monte_carlo 2018-02-16 18:12:31 +00:00
jzmaddock
70e67bbc2d polynomial_gcd.hpp: Fix namespace name for gcd_range. 2018-02-16 18:07:28 +00:00
jzmaddock
6b9364dd3a Merge branch 'develop' into naive_monte_carlo 2018-02-16 18:05:52 +00:00
jzmaddock
073e7a7196 Merge branch 'develop' into naive_monte_carlo 2018-02-16 17:59:00 +00:00
Nick
f97fd25005
Fix build by using boost::integer::gcd over boost::math::gcd 2018-02-16 10:27:21 -06:00
Nick
5b9e412189
Fix typo in error message. 2018-02-15 18:36:12 -06:00
jzmaddock
49cbe80df1 naive_monte_carlo: add missing include, suppress some warnings and fix some min/max issues. 2018-02-15 20:10:18 +00:00
jzmaddock
5d5d063abe std_real_concept: update to allow testing in C++03 mode while retaining Nicks C++11 concepts when required. 2018-02-15 20:09:28 +00:00
jzmaddock
c4190aa7e2
Merge pull request #109 from boostorg/gcd_deprecation
Put explicit deprecation warning on boost/math/common_facto…
2018-02-15 11:55:27 +00:00
Nick Thompson
2bb193f93e [ci skip] Use boost::atomic<Real> instead of std::atomic<Real>. 2018-02-14 18:09:03 -06:00
jzmaddock
edd4b44d40
Merge pull request #97 from DanielaE/fix/replace-deprecated-allocator-members
Most members of std::allocate are deprecated in C++17
2018-02-14 20:34:28 +00:00
jzmaddock
c6b734a791
Merge pull request #110 from boostorg/pr64
Integration test PR64
2018-02-13 19:47:54 +00:00
Nick Thompson
a069b60588 [ci skip] Perturb boundaries rather than range of random number generator to ensure that singularities aren't hit in the integrand. Note that this breaks the double infinite limits; I need to let that one stew a bit before figuring out how to deal with it. Let the user specify if the integrand is singular, since peeling a high-dimensional orange leaves almost nothing. 2018-02-12 15:57:25 -06:00
jzmaddock
7403cbbd43 Make table driven functions constexpr:
unchecked_factorial, unchecked_bernoulli_b2n and prime.
2018-02-11 19:59:26 +00:00
Nick Thompson
36fc4bd783 [ci skip] Use BOOST_HEADER_DEPRECATED to deprecated header instead of one-off hacks. 2018-02-11 12:15:18 -06:00
jzmaddock
d32258fcea Numeric differentiation: make some trivial changes so we don't need C++17.
Update Jamfile to exclude testing compilers which can't handle the tests.
2018-02-11 17:52:22 +00:00
jzmaddock
f4dfb9088f Merge branch 'numerical_differentiation_2' of https://github.com/NAThompson/math into pr64
Fixed Conflicts:
   include/boost/math/concepts/std_real_concept.hpp
   test/Jamfile.v2

Changes:
   Minor changes to get things compiling with msvc.
2018-02-11 16:33:41 +00:00
Nick Thompson
353c2e0fd4 [ci skip] Remove hyperbolic language related to complex step derivative. Ensure macro substitution of 'max' doesn't break routines. Add copyright notices. 2018-02-10 16:24:16 -06:00
Nick Thompson
0c48214260 [ci skip] Put explicit deprecation warning on boost/math/common_factor.hpp 2018-02-10 13:23:55 -06:00
Daniela Engert
f6883a6595
Most members of std::allocate are deprecated in C++17
Replace them by their cousins from std::allocator_traits.

Signed-off-by: Daniela Engert <dani@ngrt.de>
2018-02-10 10:32:24 +01:00
Nick Thompson
0a8d5bfb37 [ci skip] Fix derivative at singularity at z = 0 of Lambert W -1. 2018-02-09 14:36:05 -06:00
Nick Thompson
8a7539c707 [ci skip] Pick the low hanging fruit of the Lambert-W derivative. Remove a few typos from the documentation. 2018-02-09 13:57:25 -06:00
Nick Thompson
4b55b42268 [ci skip] Use C++17 'if constexp' to avoid branch. Modularize stepsize logic into single call. Do not assume 3ULP evaluation in error, assume 1ULP. Add reference to great numerical analysis text which also promotes these methods and clean up documentation. 2018-02-09 11:53:44 -06:00
Nick Thompson
2718dded89 [ci skip] Ooura's method for computing Fourier sin and Fourier cosine transforms. 2018-02-06 13:15:56 -06:00
Nick Thompson
da4a027233 [ci skip] Remove 'print_coefficients()' as 'coefficients()' is implemented and 'print_coefficients()' requires including <iostream> which was previously not included in chebyshev_transform.hpp 2018-02-04 11:47:53 -06:00
Nick Thompson
5e78b298da [ci skip] Use Unix-style paths. Add tests for lambert-W testing integrals of the Lambert-W function. 2018-02-02 21:33:54 -06:00
pabristow
b4ffbedf1e Change to use JM W0 version. 2018-01-30 12:11:03 +00:00
jzmaddock
f0b5e17ebf Merge branch 'develop' of https://github.com/boostorg/math into develop 2018-01-30 08:27:10 +00:00
jzmaddock
426db8d929 Math.Quaternion: Fix forward declarations of quaternion.
See https://github.com/boostorg/math/issues/99
2018-01-30 08:26:50 +00:00
Nick Thompson
1781d47b78 [ci skip] Clarify conditions on the template point type. Add include and concept test. 2018-01-27 14:44:15 -06:00
jzmaddock
5ad688def2
Merge pull request #100 from kuhlenough/develop
Don't use std::fpclassify() on VxWorks as well
2018-01-25 10:16:51 +00:00
pabristow
6d73d8f517 commit so can switch to develop (problem in one polynomial nearest singularity 2018-01-23 14:38:56 +00:00
jzmaddock
bac580583b Math: Fix the distribution explorer build files for VS2017.
Fix lanczos.hpp to not use native code on managed builds.
2018-01-21 10:04:38 +00:00
jzmaddock
da9d77ef2e Hypergeometric: Begin fixing errors from large params in 1F1 2018-01-20 17:48:51 +00:00
jzmaddock
5a1f4d90ba Hypergeometric: start testing larger arguments to 1F1 and begin to fix the errors. 2018-01-20 17:46:57 +00:00
Brian Kuhl
72997d2963
Don't use std::fpclassify() on VxWorks as well
It doesn't exisit
2018-01-16 11:02:06 -05:00
Nick Thompson
7341a149de More review from codereview.stackexchange.com 2018-01-12 22:59:56 -06:00
Nick Thompson
a90aac3656 Cleanup based on codereview.stackexchange.com suggestions. 2018-01-12 16:33:07 -06:00
Nick Thompson
ec3412ac28 Better comments, #include guards. 2018-01-12 13:14:34 -06:00
Nick Thompson
358d9d3496 In float precision, make sure that eps < x[j] < 1 - eps, or we hit singularities on the boundary. 2018-01-11 21:57:15 -06:00
Nick Thompson
a13c7e9ab0 Double infinite limits. 2018-01-11 12:08:53 -06:00
Nick Thompson
d5eb6e3995 Support infinite lower and upper bounds. 2018-01-11 11:39:21 -06:00
Nick Thompson
08550d4064 3 template arguments -> 1 template argument. 2018-01-10 14:08:23 -06:00
Nick Thompson
d0e52cf8c9 Policies for monte-carlo 2017-12-30 10:53:53 -07:00
Nick Thompson
0f007c23c6 Reuse temporaries to increase performance. 2017-12-23 17:06:20 -07:00
Nick Thompson
1a29ce99c6 Demonstrate affine invariance of Catmull-Rom splines. 2017-12-22 21:52:52 -07:00
Nick Thompson
4cce07e15e Implement tangent vector computation. Fix index lookup. Close all Catmull-Rom curves and document. 2017-12-22 16:31:36 -07:00
Nick Thompson
cad34ff756 First pass at a Catmull-Rom curve interpolator. 2017-12-21 16:12:24 -07:00
jzmaddock
0dd6df4221 Math.Hypergeometric_1F1: add error handling for large recurrences. 2017-12-02 19:16:58 +00:00
jzmaddock
15a1156b4c Math.Hypergeometric_1F1: Update tests for small random values, fix resulting errors. 2017-12-02 19:10:50 +00:00
Nick Thompson
0da69d2626 Add isfinite to std_real_concept to fix build. 2017-11-29 16:17:08 -07:00
Nick Thompson
d53284370a Use ADL to green some more builds. Add requirements to build on Chebyshev transform. 2017-11-29 15:09:20 -07:00
Nick Thompson
401e353385 Hopefully get a few more builds green; eliminate compiler warnings. 2017-11-28 08:41:23 -06:00
jzmaddock
ef10ba37d2 Merge branch 'lambertw' of https://github.com/boostorg/math into lambertw 2017-11-27 19:08:42 +00:00
jzmaddock
3cebb614a5 Math.LambertW: fix Halley termination condition. 2017-11-27 19:06:53 +00:00
pabristow
66067c3b6b Added include to test_value to ensure that when used standalone with GCC that supports suffix Q, multiprecision float128 is included. 2017-11-24 16:53:18 +00:00
Nick Thompson
57ba888a50 Unit test variance. 2017-11-23 14:18:05 -07:00
Nick Thompson
773076475c Fix exception safety in threads. 2017-11-23 10:53:35 -07:00
Nick Thompson
67578ce12b Naive Monte-Carlo integration. Still needs to handle exceptions in threads. 2017-11-21 18:49:14 -07:00
pabristow
9b9414c256 numerous minor fixes for JM 1st comments on docs 19Nov17 2017-11-20 17:03:29 +00:00
jzmaddock
be326922dc Math: add start of 1F1 implementation. 2017-11-19 11:58:26 +00:00
pabristow
6aa9f286ff Tests OK, including multiprecision. 2017-11-16 17:58:59 +00:00
jzmaddock
587f2d8918 Math.Hypergeometric: Add 2F0 function and tests.
Also fix a couple of warnings in test_data.hpp, and improve the continued fraction form in 0F1.
2017-11-15 18:27:35 +00:00
jzmaddock
1783c3a74c Math: Fix inspection report errors. 2017-11-09 19:39:32 +00:00
pabristow
89ae728836 added graphs and updated docs to use them. 2017-11-06 17:18:33 +00:00
Nick Thompson
713f17f76a Fix typo in error message. 2017-11-04 13:50:12 -06:00
pabristow
3c3c91709f w-1 branch improvements and tests OK 2017-11-02 18:47:30 +00:00
jzmaddock
47fa45bee4 Import SOC headers, Test and fix up 1F0 and 0F1. 2017-10-29 19:33:39 +00:00
jzmaddock
81c8a80dd5 Update big_constant.hpp to work standalone. 2017-10-29 19:32:13 +00:00
pabristow
04121d2872 Lambert w for huge z added, and test and more docs 2017-10-28 19:13:58 +01:00
pabristow
f51d987acd added much on W-1 branch (handling tiny z), and more docs. 2017-10-27 18:18:06 +01:00
pabristow
d01d0c4eb8 Working version with C array of precomputed lookup tables, but still inline inside 2017-10-13 09:43:39 +01:00
pabristow
dd06d2beae 100 decimal digit precision values and tests OK. 2017-10-10 15:13:49 +01:00
jzmaddock
97f61f0020 Math.Quaternion: Add workarounds for older compilers and fix up constexpr support. 2017-10-06 19:22:45 +01:00
jzmaddock
cfdd05f158 Math.Quaternion: Add move semantics. 2017-10-05 18:18:21 +01:00
jzmaddock
94e92dc5f4 Math.Quaternion: add swap method. 2017-10-05 18:12:24 +01:00
jzmaddock
68b82322ab Math.Quaternion: remove dead code from header. 2017-10-05 13:06:20 +01:00
jzmaddock
601ee6e00f Math.Quaternion: Rewrite test program, mostly remove valarray usage from header. 2017-10-05 12:50:24 +01:00
pabristow
39846818e1 Expanded docs using snippets. 2017-10-03 15:11:25 +01:00
John Maddock
f7acd35e51 Math.Chebyshev: tidy up and simplify fftw dispatch code with a traits class to abstract the differences. 2017-09-25 19:37:36 +01:00
John Maddock
2eabd87de1 Math.Chebyshev: Fix up chebeshev_transform for more types. 2017-09-21 19:13:36 +01:00
John Maddock
aaa6db8880 Math.Chebyshev: Fix ambiguous calls to pow with gcc-7 2017-09-21 17:56:51 +01:00
jzmaddock
9ee7a93678 Math.Chebyshev: Modify chebyshev_transform to dispatch to correct fftw3 functions.
Begin to hook up fftw3 tests.
2017-09-21 13:40:23 +01:00
jzmaddock
a1c18789a0 Math.chebyshev: Hook up conceptual tests and fix resulting errors. 2017-09-21 11:52:59 +01:00
jzmaddock
c7f243239e Math.chebyshev: Backport to C++03. 2017-09-20 19:07:17 +01:00
jzmaddock
82392e3e0c Merge branch 'develop' into chebyshev 2017-09-20 17:59:38 +01:00
Nick Thompson
dd9f2b7033 Since I cannot find a symmetry to reuse function evaluations after Chebyshev grid refinement, just give up for now and simplify the constructor accordingly. 2017-09-19 00:48:20 -06:00
Nick Thompson
956864cbd5 Recurse when grid isn't sufficiently refined. Optimization potential exists by reusing function evaluations. 2017-09-17 21:16:48 -06:00
Nick Thompson
0d85d4d11e Performance improvements. 2017-09-17 19:30:15 -06:00
Nick Thompson
2cb935ec17 Use std::enable_if to obviate the need for C++17 if constexpr. 2017-09-17 16:23:50 -06:00
Nick Thompson
0acb51b78d Linear time and numerically stable evaluation of derivative of Chebyshev series by a modified Clenshaw recurrence. 2017-09-17 14:02:43 -06:00
Nick Thompson
cb470280ba Chebyshev transform 2017-09-13 17:51:50 -06:00
jzmaddock
5755e1d37e Merge pull request #87 from boostorg/gauss
Merge Gauss Kronrod code into develop.
2017-09-13 16:57:06 +01:00
jzmaddock
25cc8fdad7 Add Gauss and Gauss-Kronrod docs. 2017-09-09 19:18:08 +01:00
jzmaddock
4c0bec596c Remove dead files. 2017-09-06 19:56:15 +01:00
jzmaddock
d9893f5e01 Quadrature: update conceptual tests for Gauss (Kronrod) quadrature. 2017-09-06 19:53:10 +01:00
jzmaddock
e09ad4c3aa Quadrature: finish off Gauss and Gauss-Kronrod integration code and tests. 2017-09-06 18:03:15 +01:00
pabristow
15568b8d62 Work on precision demo before holiday. OK on VS14.1 and GCC 7.1.0 but docs need much more work. 2017-09-02 12:12:10 +01:00
jzmaddock
7d2002db80 Quadrature: add gauss and gauss-kronrod quadrature. 2017-08-31 19:42:26 +01:00
pabristow
c1b8ffec7c Needed to merge? 2017-08-31 12:50:11 +01:00
pabristow
48435ed996 Commit before merge develop to get new config file 2017-08-30 17:05:34 +01:00
jzmaddock
1527667e20 Next.hpp: Change struct to class to avoid msvc compiler warnings. 2017-08-29 20:00:32 +01:00
pabristow
c408d7ec1c Restored test_out_of_range to original location as is used by other tests 2017-08-29 17:03:06 +01:00
pabristow
34fd59c372 students t allowing df and x infinite 2017-08-29 15:24:45 +01:00
pabristow
0f070dd259 Commit work-in-progress before fixing students t on develop 2017-08-29 08:21:59 +01:00
jzmaddock
e7e915816f Merge branch 'gauss_konrod' of https://github.com/NAThompson/math into gauss
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2017-08-24 11:47:26 +01:00
jzmaddock
e100973d53 Merge pull request #81 from lakshayg/noexcept
make move constructor and operator= noexcept
2017-08-23 19:02:49 +01:00
jzmaddock
f301e2a197 Merge pull request #72 from boostorg/pr66
PR66: Moved to here for integration testing.
2017-08-23 18:47:46 +01:00
Lakshay Garg
4fc8d43b4b make move constructor and operator= noexcept
This change helps the polynomial class play well with STL
containers.

> If the move constructor for an element type in a container
> is not noexcept then the container will use the copy constructor rather
> than the move constructor -- HIC++ Version 4.0

Benchmarking shows that the number of calls to copy constructor
are reduced.
2017-08-22 12:41:32 +05:30
jzmaddock
f6495af64c Polynomial: more simplifications and modernizations.
Also update msvc performance results.
2017-08-21 13:15:39 +01:00
jzmaddock
d9858963d0 Merge branch 'move' of https://github.com/lakshayg/math into pr79 2017-08-20 09:16:20 +01:00
jzmaddock
b70d7b1359 Add polynomial performance test. 2017-08-20 08:28:41 +01:00
Lakshay Garg
36b272c42b enable move semantics for polynomial 2017-08-17 09:11:40 +05:30
jzmaddock
bc03a4ec79 Remove forward references to gcd/lcm types:
These are no longer part of Boost.Math, but moved to Integer.
2017-08-14 19:56:14 +01:00
pabristow
26aea4e7df Big refactor JM small_z and tag_type select code 2017-08-10 17:49:17 +01:00
jzmaddock
68c80b5fc8 Merge branch 'pr66' of https://github.com/NAThompson/math into pr66_78
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2017-08-09 18:02:36 +01:00
jzmaddock
3770719aff Quadrature: Remove the minimum levels requirement on tanh_sinh. 2017-08-07 19:04:42 +01:00
jzmaddock
a928ff3df3 Quadrature: Correct logic in finding the first abscissa values which are stored as complements. 2017-08-06 13:14:42 +01:00
jzmaddock
1225612a28 quadrature: Remove unneeded test case, adjust one error rate, and finally silence some warnings. 2017-08-06 12:50:53 +01:00
jzmaddock
70e87cb407 Merge pull request #75 from boostorg/jzmaddock-patch-1
Remove forward references to gcd/lcm types:
2017-08-06 08:38:58 +01:00
jzmaddock
623263e726 Disable abs overload for __float128 when building with gcc-7 and later. 2017-08-03 11:38:16 +01:00
jzmaddock
e84195d3a6 Quadrature: Update docs.
Also add ability to get the # levels consumed from the integrators.
[skip ci]
2017-07-28 19:26:04 +01:00
jzmaddock
c3eb9e73d9 quadrature: move the tolerance into the integrate method from the constructor.
Since nothing in the constructor depends on the tolerance, and we may wish to use different integration tolerances with the same integrator object.
Update the tests to match the new interface.  Also add "direct" integration methods which do not adapt the range at all, but assume that we are using the integrators native range.
2017-07-25 18:26:21 +01:00
jzmaddock
27c1fa591f sinh_sinh: add pre-computed coefficients. 2017-07-23 18:50:38 +01:00
jzmaddock
6232615fd6 Remove forward references to gcd/lcm types:
These are no longer part of Boost.Math, but moved to Integer.
2017-07-21 18:19:56 +01:00
jzmaddock
397d8ce9c9 exp_sinh: add support for pre-computed constants. 2017-07-20 19:55:44 +01:00
jzmaddock
9d86bdefa6 Fix atomic namespaces. 2017-07-20 19:54:56 +01:00
jzmaddock
eb18bcd5aa tanh_sinh: add some missing using declarations. 2017-07-18 18:34:51 +01:00
jzmaddock
6259b8c795 tanh_sinh: add support for 2 arg user functions.
Update tests accordingly and get everything passing locally.
2017-07-16 19:18:20 +01:00
jzmaddock
3f9ae1db4e tanh_sinh: fix atomic/mutex usage to work on platforms that don't support the std:: versions. 2017-07-15 19:09:23 +01:00
jzmaddock
4334ced6a7 tanh_sinh: make the new version thread safe. 2017-07-15 17:07:59 +01:00
jzmaddock
4984809487 tanh_sinh: Add support for a minimum complement value,
so we can prune the table size when going to extreme ends of the range isn't required.
2017-07-15 16:47:55 +01:00
jzmaddock
80125ffb2c tanh_sinh: Hook up infinite limits code to use the available complements of abscissa values where appropriate. 2017-07-12 19:17:29 +01:00
jzmaddock
c986efa8f7 tanh_sinh: add precomputed coefficients for double/long double/__float128. 2017-07-11 18:45:28 +01:00
jzmaddock
2f837ee55a tanh_sinh: add back pre-computed coefficients for float case.
Also refactored code back into one header/class.
2017-07-10 19:19:46 +01:00
jzmaddock
4a5871ac71 tanh_sinh: Rework base class to cache refinements on demand. 2017-07-10 17:07:23 +01:00
jzmaddock
18938213e7 tanh_sinh: begin transforming code to calculate and store complements of abscissa values,
and use these in the range transformations so that there is no cancellation error when transforming to an abscissa value very close to zero.
2017-07-09 18:22:21 +01:00
jzmaddock
8b40c2cbb1 quadrature: Fix cpp_dec_float tests. 2017-06-26 09:02:09 +01:00
jzmaddock
6f96c8b229 quadrature: Get tests clean with older compilers.
Also make tanh_sinh constants static members since they're constants.
2017-06-25 11:44:08 +01:00
jzmaddock
040feb0240 Get the tests hooked up and working with a variety of compilers. 2017-06-24 09:48:32 +01:00
pabristow
bf1b8e8e10 Corrected mismerge to use my new version of constants include exp_minus_one constant. 2017-06-22 18:15:18 +01:00
pabristow
555e0f416b commit merge from develop 2017-06-22 17:05:02 +01:00
jzmaddock
b55167446f Quadrature: Policify the code,
Make tanh_sinh quadrature arbitrary precision.
Rework tests so the object files are not so large.
Added some more example integrals to the tanh_sinh tests.
2017-06-21 18:29:46 +01:00
jzmaddock
5e3fd1574e Merge branch 'double_exponential' of https://github.com/NAThompson/math into pr66 2017-06-17 18:10:25 +01:00
jzmaddock
9a8324c989 Merge pull request #71 from boostorg/pr65
PR based on #65 prepared for CI testing
2017-06-17 09:02:56 +01:00
jzmaddock
fdd959a32f Merge branch 'cleanup' of https://github.com/NAThompson/math into pr65.
Also made a couple of  minor modifications.
2017-06-16 19:35:13 +01:00
jzmaddock
34d413e830 trapezoidal: More fixes prior to merging:
Add new documentation section for integrators.
Remove isfinite from std_real_concept.hpp - it's not part of our conceptual requirements.
Add workarounds for older compilers that can't handle the default arguments to the function.
Restrict testing test_trapezoidal.cpp to compilers that handle lambdas.
Make the concept checks C++03.
Make test_trapezoidal.cpp compile with VC11's broken lambda support.
2017-06-16 18:13:42 +01:00
jzmaddock
f435cd3451 Bring trapezoidal.hpp more into line with the rest of Boost.Math:
Add policy support for error handling and epsilon.
Fix some warnings in the test case (msvc).
2017-06-15 19:14:31 +01:00
jzmaddock
a8bb78d25b Merge branch 'romberg' of https://github.com/NAThompson/math into pr59
# Resolved Conflicts:
#	test/Jamfile.v2
2017-06-15 18:26:48 +01:00
jzmaddock
cf0668eb62 Fix bessel N functions to behave correctly with decimal number types. 2017-06-13 18:54:48 +01:00
jzmaddock
4b90631b84 next.hpp: workarounds for std libs with no max_digist10
Only invoke numeric_limits<>::max_digits10 for decimal multiprecision types.
Also make sure our traits classes are instantiated on the actual number type, not an expression template.
2017-06-11 19:49:43 +01:00
jzmaddock
9b2f878103 Update next.hpp and ulp.hpp to work with decimal types. 2017-06-10 11:11:58 +01:00
jzmaddock
5c3624c0b8 Address CI failures:
* Fix bjam command line in appveyor file.
* Fix assertions triggered in bessel_i0.hpp.
* Remove common factor testing - it's moved to integer.
* Add lots of additional {} in initializers to silence clang warnings.
2017-06-04 13:12:33 +01:00
jzmaddock
0242c64eec float_distance: Fix cases that span several orders of magnitude.
Add more tests.
See https://github.com/boostorg/multiprecision/issues/22.
2017-06-02 19:40:52 +01:00
jzmaddock
37783e519a Bessel_I0: decimal number types shouldn't use numeric_limits::digits to judge precision. 2017-05-21 08:49:06 +01:00
Nick Thompson
23403b61a1 Add concept test and include test. 2017-05-18 19:02:29 -06:00
Nick Thompson
a980bd8af3 Add concept and include test. 2017-05-18 18:23:01 -06:00
Nick
1753d6e9e4 Merge branch 'develop' into romberg 2017-05-18 17:34:52 -06:00
Nick Thompson
7660162d41 Add concept and include test. 2017-05-18 17:33:45 -06:00
jzmaddock
bc37badb91 Change signbit to normalise the result when using std::signbit. 2017-05-15 18:28:32 +01:00
Nick Thompson
78409954f2 Use quadrature namespace. Add example. 2017-05-11 21:51:35 -06:00
Nick Thompson
4801e2d8bf Add namespace boost::math::quadrature. Remove throw when condition number of summation exceeds precision of type; how to properly mollify the condition number is not clear and should be done consistently rather than ad-hoc. 2017-05-11 21:03:00 -06:00
Nick Thompson
3bfeee838d Double exponential quadrature. 2017-05-10 22:03:21 -06:00
pabristow
369ce4312b Halley/Luu version working for 50 decimal digits 'reference' test values. 2017-05-10 18:21:35 +01:00
jzmaddock
5db9e8870b Legendre_stieltjes: hook up tests.
Add concept checks.
Fix some warnings, and reduce dependencies.
2017-05-09 19:13:44 +01:00
jzmaddock
83891e2b79 Merge branch 'legendre_stieltjes' of https://github.com/NAThompson/math into stieltjes 2017-05-09 18:36:53 +01:00
jzmaddock
27ded3276d Remove C++11 isms from, legendre_prime header and tests - we don't want to break existing C++03 code using that header. 2017-05-09 12:18:43 +01:00
jzmaddock
97a4184df9 Hook up concept checks for legendre_p_prime.
Fix errors from above, add domain-error handling to the function.
2017-05-08 19:47:02 +01:00
jzmaddock
150a0b5afa Merge branch 'legendre_derivatives' of https://github.com/NAThompson/math into legrende_prime
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2017-05-08 19:14:16 +01:00
jzmaddock
1d0880a9ef Remove dependencies on format and type_index. 2017-05-06 13:16:31 +01:00
jzmaddock
87ab68456d Improve interpolator documentation and examples. 2017-05-06 12:26:37 +01:00
jzmaddock
6e8687812f Add concept checks for barycentric_rational. 2017-05-05 13:12:25 +01:00
jzmaddock
80e7f7027c Merge branch 'barycentric' of https://github.com/NAThompson/math into interpolate_rat
Fix some msvc failures.
Suppress some compiler warnings.
Added iterator based constructor.
Moved docs to better position.

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2017-05-05 13:01:56 +01:00
jzmaddock
d300f98fdc Fix msvc compiler errors in barycentric code. 2017-05-04 13:27:41 +01:00
jzmaddock
adc2234d95 Merge branch 'barycentric' of https://github.com/NAThompson/math into interpolate_rat
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2017-05-04 13:18:05 +01:00
Nick Thompson
cf35d745d1 Remove unused typedef. Fix dangling reference to policy in airy. Pipe unused variables in compile test to /dev/null to suppress compiler warnings. Remove comment within comment. 2017-05-03 10:13:18 -06:00
jzmaddock
b9362cb000 Add concept checks for cubic-spline code, and fix resulting errors. 2017-05-03 13:32:53 +01:00
jzmaddock
127178518d Add iterator based construction to cubic B spline. 2017-05-03 13:07:54 +01:00
Nick Thompson
45226c7ef1 Numerical differentiation by finite differences and the complex step derivative. 2017-05-02 18:29:03 -06:00
jzmaddock
3141e075ed Fix min/max usage. 2017-05-02 20:06:53 +01:00
jzmaddock
9dd532e01a Merge branch 'develop' of https://github.com/NAThompson/math into interpolate 2017-05-02 19:30:31 +01:00
jzmaddock
6407bedb75 Bring polynomial gcd into line with new Boost.Integer code, and improve tests. 2017-05-02 19:12:18 +01:00
Nick Thompson
48a0cf714b Put license information in each file. Do not throw when condition number is approaching an undefined value; use mollification. Improve documentation. 2017-05-02 12:02:02 -06:00
Nick Thompson
2bbadc69fb Place copyright notices in file. 2017-05-01 18:36:26 -06:00
Nick Thompson
4b4c4e9364 Legendre-Stieltjes polynomials. 2017-04-30 15:58:10 -06:00
jzmaddock
ceae76a526 Switch to using Boost.Integer gcd/lcm. 2017-04-24 19:26:23 +01:00
Nick Thompson
a918d0f331 Return all zeros of the Legendre polynomial at once; there seems to be no benefit to having the user calculate them one at a time. 2017-04-22 15:47:22 -05:00
jzmaddock
1c10933943 polynomial.hpp should not be including private Boost.Config header. 2017-04-20 19:23:02 +01:00
jzmaddock
fafda3176c Fix gcd tests and code for clang on Linux 2017-04-20 14:43:28 +01:00
jzmaddock
82e3949024 GCD: Don't enable variadics unless the compiler supports them.
Update docs.
Escape from variadic GCD early when the result hits unity.
2017-04-15 18:31:01 +01:00
jzmaddock
c1ab95b6cc Add rational and multiprecision types to common_factor_test.cpp.
Disable rational overloads if there is no numeric_limits support as boost::rational won't compile in that case anyway.
2017-04-15 18:13:30 +01:00
Nick Thompson
4110a69416 Zeros of Legendre polynomials. This uses a root bracketing given by Szego with an asymptotic by Tricomi to get a domain and an initial guess for the root, then refines it via Newton's method. 2017-04-14 15:51:39 -05:00
Nick Thompson
21bcf34a51 Derivative of Legendre polynomials of the first kind. Used to generate the weights of Gaussian quadratures. 2017-04-12 14:16:26 -05:00
jzmaddock
70e82419d5 Fix for expression template types. 2017-04-08 20:12:23 +01:00
jzmaddock
f74da283aa Add variadic gcd and lcm variations, update tests to match. 2017-04-08 19:42:33 +01:00
jzmaddock
e71629f1c0 Make gcd/lcm functions constexpr and noexcept where applicable. 2017-04-08 19:13:08 +01:00
jzmaddock
8ee33649c7 Remove dead code orphaned by previous commits. 2017-04-07 09:55:31 +01:00
jzmaddock
5ca0e2ead8 Tighten up polynomial-GCD algorithm selection.
Disallow GCD's of polynomials of bounded integers as overflow is too likely to occur.
2017-04-07 09:44:48 +01:00
jzmaddock
8e98f30cb2 Remove SFINAE-logic and replace with simpler numeric_limits based algorithm selection. 2017-04-07 09:43:40 +01:00
jzmaddock
39006ecaca Reinstate gcd of rational numbers. 2017-04-06 19:22:45 +01:00
jzmaddock
7795ad3fd1 Merge branch 'gcd_polynomial' into gcd_cpp14 2017-04-06 11:28:32 +01:00
jzmaddock
9d0dac1df9 gcd: add the function objects back.
Improve the gcd/lcm tests.
2017-04-04 18:29:45 +01:00
jzmaddock
e4c0fdb0f2 Make gcd/lcm independent of type_traits and mpl.
Later we'll try and reconcile this version with that in Boost.Integer.
2017-04-02 20:10:46 +01:00
jzmaddock
8c9709b317 Fix cases where wchar_t is not an intrinsic type.
Fixes: https://svn.boost.org/trac/boost/ticket/12944
2017-03-30 19:35:59 +01:00
Nick Thompson
fff12aa16b Improve documentation for trapezoidal quadrature, explaining the role of the L1 norm calculation. Throw correct error type. 2017-03-28 13:56:18 -05:00
Nick Thompson
9f58f0d337 Add facility to check L1 norm and hence condition number of the quadrature sum. Throw when condition number exceeds the number of significant digits of the type. 2017-03-26 13:45:50 -05:00
pabristow
c5ee664a51 Refactored with policies and passes tests and timing. 2017-03-23 14:15:37 +00:00
pabristow
bdee37743d Bug in values near to -exp(-1) corrected. 2017-03-13 10:03:33 +00:00
pabristow
0048d41dd6 Added new constants expminusone and sixth 2017-03-10 13:06:44 +00:00
pabristow
cea2465e3e Need expminusone constant 2017-03-06 18:23:54 +00:00
pabristow
94d3cf4043 refactored to use local test_value.hpp 2017-03-06 18:10:52 +00:00
Nick Thompson
4efe710855 Add tests detailing the use cases which make it difficult to use std::unique_ptr for pimpl idiom. Also, test that evaluating the spline outside the interpolation region succeeds as best it can. 2017-03-06 11:12:51 -06:00
Nick Thompson
136e7411f5 Adaptive Trapezoidal Quadrature
This routine estimates the definite integral of a function f.
Assuming that f is periodic, it can be shown that this routine converges exponentially fast.
In fact, the test cases given exhibit exponential convergence with decreasing stepsize.

A potential improvement is using the Bulirsch sequence rather than the Romberg sequence to schedule the refinements.
However, the convergence is so rapid for functions of the class specified above that there seems to be no need at present.

This code is cppcheck clean, and runs successfully under AddressSanitizer and UndefinedBehaviorSanitizer.
2017-03-05 19:05:41 -06:00
Nick Thompson
446f8c415d Cite Kress's book 'Numerical Analysis' in MLA format. 2017-03-05 10:49:22 -06:00
Nick Thompson
2506d7ed1f Use PIMPL so that the interpolant can be passed as a functor. 2017-03-02 17:16:21 -06:00
Nick Thompson
2b9d88d352 Fixes suggested by code review of PR #57. 2017-03-02 11:54:55 -06:00
Nick Thompson
b157403fd9 Do not use Kahan summation to compute average; use update procedure that cannot overflow recommended by Knuth. 2017-02-27 20:58:42 -06:00
Nick Thompson
fee20ab932 Given a function f, known at evenly spaced samples y_j = f(a + jh),
this function constructs an interpolant using compactly supported cubic b splines.
The advantage of using splines of compact support over traditional cubic splines
is that compact support makes the splines well-conditioned.

The interpolant is constructed in O(N) time and can be evaluated in constant time.
Its error is O(h^4), and obeys the interpolating condition s(x_j) = f(x_j) for all samples.
In addition, f' can be estimated from s', albeit with lower accuracy.

This routine is cppcheck clean, and is clean under AddressSanitizer and MemorySanitizer.
2017-02-23 18:21:06 -06:00
jzmaddock
4c19a1ec34 Remove unneeded parameters in new beesel J/K code.
Also fix some multiprecision-conceptual errors.
2017-01-29 19:18:36 +00:00
jzmaddock
38eb9d3e38 Update docs for new Bessel K0 and K1 approximation code. 2017-01-24 18:35:54 +00:00
jzmaddock
fe66909b23 Reorder some declarations to keep GCC happy.
Remove some dead code.
2017-01-23 19:34:34 +00:00
jzmaddock
7922883e7b Add improved approximations for K0 and K1.
Based on http://www.advanpix.com/2016/01/05/rational-approximations-for-the-modified-bessel-function-of-the-second-kind-k1-for-computations-with-double-precision/
2017-01-23 17:45:51 +00:00
jzmaddock
2dc47a631a Improve constant initialization for I0 and I1. 2017-01-23 17:45:00 +00:00
jzmaddock
cc8e300bae Update I0 and I1 to use better approximations from Pavel Holoborodko
See: http://www.advanpix.com/2015/11/11/rational-approximations-for-the-modified-bessel-function-of-the-first-kind-i0-computations-double-precision/
2017-01-18 18:56:27 +00:00
pabristow
ffb025ca2c First very rough prototype of Lambert W function, example of calculating diode current versus voltage, and some tests, including multiprecision and fixed_point types. Not yet using policies and trouble near the singularity at z=-exp(-1) and large z. 2016-12-22 18:30:27 +00:00
pabristow
78320adb7a return 0 to T(0) in float_distance changed because fixed-point requires explicit construction 2016-12-05 16:41:18 +00:00
jzmaddock
1844134d07 Changes to call correct error handlers in C99 annex F cases. 2016-11-30 18:57:11 +00:00
zerotypos-found
3871f6a7e8 Fix issues in the inspection report
- Remove Non-ASCII characters (i.e. replace dashes with hyphens).
- Protect min from macro expansion.
2016-10-25 11:56:09 +09:00
jzmaddock
37fe39f2d9 Merge pull request #50 from kartikmohta/fix/boost-zero-polynomial-evaluate
Fix boost::math::polynomial::evaluate for the zero polynomial
2016-10-19 19:33:24 +01:00
jzmaddock
3370ea2f79 Add missing #include.
Fixes https://svn.boost.org/trac/boost/ticket/12537.
2016-10-19 19:27:37 +01:00
jzmaddock
21ab379ee9 Merge branch 'develop' of https://github.com/boostorg/math into develop 2016-10-19 19:22:51 +01:00
jzmaddock
4787d870c6 Suppress some msvc warnings. 2016-10-19 19:22:37 +01:00
Kartik Mohta
9dad3e2b62
Fix boost::math::polynomial::evaluate for the zero polynomial 2016-10-17 16:13:25 -04:00
zerotypos-found
4b9823768b Replace tabs to whitespace 2016-10-11 12:44:32 +09:00
jzmaddock
50e7ea3863 Sub-resultant GCD is only for integer types. 2016-08-26 18:40:11 +01:00
jzmaddock
accfe2f7eb Fix msvc compile failure, and add a using declaration so we overload boost::math::gcd. 2016-08-26 18:33:10 +01:00
jzmaddock
f888dcb129 Including polynomial.hpp should get the gcd overloads as well. 2016-08-26 18:32:27 +01:00
Jeremy W. Murphy
64c887a3c9 Add overload of gcd() for polynomials with multi-precision integral coeffs.
And add a unit test to show that it works.
2016-08-25 23:02:03 +10:00
Jeremy W. Murphy
d817274f3f Update some doxygen. 2016-08-25 23:00:59 +10:00
Jeremy W. Murphy
783dc6af46 Merge branch 'develop' into polynomial_ufd_gcd 2016-08-25 22:08:48 +10:00
inkstink
c9d9f446c5 fixed typos for real this time 2016-08-19 20:42:14 -04:00
inkstink
950d3990e4 fixed typos 2016-08-19 20:33:24 -04:00
pabristow
7786c7d5a8 Added Thomas Luu references 2016-08-09 16:05:20 +01:00
jzmaddock
53403a58f7 minor Intel fix. 2016-07-29 11:41:28 +01:00
Jeremy W. Murphy
3348f83fb7 Assert the loop invariant, degree(u) >= degree(v). 2016-07-27 17:47:03 +10:00
Jeremy W. Murphy
3b1f362a37 Let's not provide the subresultant algorithm as a default. 2016-07-26 19:07:51 +10:00
Jeremy W. Murphy
af290b272d The algorithm appears to assume that u is not smaller than v. 2016-07-26 19:07:21 +10:00
jzmaddock
d3a570e91a Fix Intel C++ test failures 2016-07-22 09:27:15 +01:00
Jeremy W. Murphy
2e024bd02d Merge branch 'polynomial_ufd_gcd' into polynomial_ufd_gcd_2
# Conflicts:
#	test/test_polynomial.cpp
2016-07-15 18:46:35 +10:00
Jeremy W. Murphy
579d6681bc Merge branch 'develop' into HEAD
# Conflicts:
#	test/test_polynomial.cpp
2016-07-15 18:42:53 +10:00
Jeremy W. Murphy
ce1d534414 Add case for zero to leading_coefficient and unit test. 2016-07-15 18:12:51 +10:00
jzmaddock
2165b95f52 Two more GCC 4.4 workarounds 2016-07-15 02:15:30 +01:00
jzmaddock
9127a2f707 Merge branch 'develop' of https://github.com/boostorg/math into develop 2016-07-15 01:31:17 +01:00
jzmaddock
12feba86fa Remove references to removed gcd/lcd code. 2016-07-15 18:36:55 +01:00
jzmaddock
cbb0cce89b Disable initializer_list support for GCC-4.4 as it doesn't fully support the new syntax and there appears to be no workaround. 2016-07-15 01:24:18 +01:00
jzmaddock
5d125381f6 Enable SSE2 code for more cases. 2016-07-14 13:24:09 +01:00
jzmaddock
b043126170 Add long double specializations where appropriate. 2016-07-14 13:23:44 +01:00
jzmaddock
3891523510 Fix tgamma_delta_ratio for cases where argument is very large compared to delta. 2016-07-14 13:22:16 +01:00
Jeremy W. Murphy
efa83033fa Merge branch 'develop' into polynomial_ufd_gcd 2016-07-12 21:39:49 +10:00
jzmaddock
5e54ce2427 Fix thread_local code:
1) Use new Boost.Config macro.
2) Fix constants to cache value and initialize on startup when used with variable precision types.
3) Fix factorials to initialize on startup with UDT types.
4) Streamline some other variable precision code.
2016-07-03 18:27:49 +01:00
jzmaddock
44a105aaf0 Tidy up clang/thread_local detection a little. 2016-06-27 19:42:09 +01:00
jzmaddock
3f0eaf7c46 Fix clang thread_local support detection 2016-06-27 18:54:38 +01:00
Jeremy W. Murphy
882dbaddd2 [polynomial] No need to call primitive_part() on v if it equals 1. 2016-06-23 11:43:56 +10:00
Jeremy W. Murphy
6f05d647ac [polynomial] Tidy up headers. 2016-06-23 11:28:23 +10:00
Jeremy W. Murphy
6f5537d273 [polynomial] Move gcd code into a new file. 2016-06-20 09:58:39 +10:00
Jeremy W. Murphy
95d4976b86 [polynomial] Rename gcd_ufd to subresultant_gcd. 2016-06-19 15:37:42 +10:00
Jeremy W. Murphy
ebc14aacd3 [polynomial] Correct the requirements and handling of zero for gcd_ufd. 2016-06-18 21:44:28 +10:00
Jeremy W. Murphy
21438ba03a gcd_ufd: neaten code and improve documentation. 2016-06-17 22:52:43 +10:00
Jeremy W. Murphy
fc109276f2 Be more specific about kinds of polynomials. 2016-06-16 23:50:43 +10:00
Jeremy W. Murphy
66740e77df Update code to reflect operator bool() now exists; overload primitive_part. 2016-06-16 23:49:17 +10:00
Jeremy W. Murphy
48e856cf34 Merge branch 'develop' into polynomial_ufd_gcd 2016-06-16 23:21:48 +10:00
jzmaddock
a96792d309 Merge branch 'develop' of https://github.com/boostorg/math into develop 2016-06-05 18:29:14 +01:00
jzmaddock
afb8e89642 Change selection of thread_local to be more conservative. 2016-06-05 18:28:56 +01:00
jzmaddock
e4cd194686 Fix misc clang issues 2016-06-04 19:26:59 +01:00
jzmaddock
5ce39f2673 squash warnings and forward policies 2016-06-03 15:11:34 +01:00
jzmaddock
e946c45e9e Fixes for cases where number type has no infinity and divide by zero is a hard error. 2016-06-01 19:25:03 +01:00
jzmaddock
5966b186f9 Add needed typecast to factorial-from-string multiprecision code 2016-06-01 00:09:49 +01:00
Daniel James
cd496c9ace Fix typo 2016-05-31 14:04:39 +01:00
jzmaddock
1cb146a001 Merge branch 'develop' of https://github.com/boostorg/math into develop 2016-05-31 13:36:01 +01:00
jzmaddock
7499075a01 Recalculate cached constants if the precision changes in zeta.hpp. 2016-05-31 13:33:51 +01:00
jzmaddock
f02c9cba13 Calculate lgamma near 1 and 2 via series expansion in terms of zeta functions of integers.
Likewise for tgamma1pm1.
2016-05-31 13:33:08 +01:00
jzmaddock
609e8373b8 We can calculate the limit as an int, no need to invoke FP code. 2016-05-31 13:31:52 +01:00
jzmaddock
6961f14eb3 Don't initialize erf's cached constants for variable-precision types. 2016-05-31 13:30:54 +01:00
jzmaddock
bd39b86ca1 Warning suppression. 2016-05-31 10:12:20 +01:00
jzmaddock
fb8528e47b Allow our cached data to be recalculated if the precision changes in unchecked_factorial.hpp. 2016-05-31 10:11:35 +01:00
jzmaddock
8b59c26e73 Warning disable. 2016-05-31 10:10:51 +01:00
jzmaddock
a97fedee55 Don't cache values for variable-precision types in precision.hpp 2016-05-31 10:10:07 +01:00
jzmaddock
cde7271817 Update bernoulli/polygamma code to avoid caching values if the precision has changed. 2016-05-31 10:09:15 +01:00
jzmaddock
04378a1a87 Warning disable in error_handling.hpp 2016-05-31 10:07:24 +01:00
jzmaddock
dd4db9a28c Update constants to work with types whose precision varies. 2016-05-31 10:07:01 +01:00
Jeremy W. Murphy
d922f95fd5 Merge branch 'develop' into polynomial_ufd_gcd
# Conflicts:
#	include/boost/math/tools/polynomial.hpp
#	test/test_polynomial.cpp
2016-05-16 09:48:15 +10:00
Jeremy W. Murphy
94526e54c7 Merge branch 'develop' into polynomial_zero
# Conflicts:
#	test/test_polynomial.cpp
2016-05-15 21:03:12 +10:00
Jeremy W. Murphy
e608dc6657 Rename clear() to set_zero(). 2016-05-13 18:27:31 +10:00
Jeremy W. Murphy
18a49862a9 Use typedef hack to prevent accidental conversion to an arithmetic type. 2016-05-12 21:02:34 +10:00
Kolya Matteo
51575f6474 Don't try pow to negative powers even for constants
This failed when pow(T,int) cannot be found. It was failing for
boost::multiprecision types.
2016-05-11 15:02:38 -04:00
Kolya Matteo
4c1a2eacef Use default policy for error handling 2016-05-11 13:50:49 -04:00
Kolya Matteo
15e163b2a5 Throw an exception, instead of asserting 2016-05-11 13:50:49 -04:00
Kolya Matteo
f5fc788b4f Fix merge 2016-05-11 13:50:49 -04:00
Kolya Matteo
141ef67b6a Add pow() function for polynomials and integer powers. 2016-05-11 13:50:49 -04:00
Jeremy W. Murphy
a737a3f5c2 operator bool() and clear(): test for zero and set to zero respectively.
Checking for zero or non-zero and setting to zero are common operations,
so fast implementations
2016-05-11 14:02:16 +10:00
jzmaddock
bea587f3fd Merge branch 'gcd_n' of https://github.com/jeremy-murphy/math into develop
# Resolved Conflicts:
#	include/boost/math/common_factor_rt.hpp
#	test/test_gcd.cpp
2016-05-09 18:59:17 +01:00
jzmaddock
c9bf1df944 Merge branch 'polynomial_shift' of https://github.com/jeremy-murphy/math into develop
# Resolved Conflicts:
#	test/test_polynomial.cpp
2016-05-09 18:29:22 +01:00
jzmaddock
cace9b59de Merge branch 'gcd' into develop
# Resolved Conflicts:
#	test/test_polynomial.cpp
2016-05-09 18:15:54 +01:00
jzmaddock
993cdcb42e Reduce dependencies by removing all use of Boost.Format.
We made only cursory use of the lib, so it's just as easy to do with it.
Also fixed a number of missing #includes which were hidden by including format.hpp.
2016-05-09 11:38:13 +01:00
Jeremy W. Murphy
a56745b479 Merge branch 'develop' into polynomial_ufd_gcd
# Conflicts:
#	test/test_polynomial.cpp
2016-05-07 18:32:42 +10:00
Jeremy W. Murphy
a822400320 Merge branch 'develop' into polynomial_shift
# Conflicts:
#	test/test_polynomial.cpp
2016-05-07 18:27:46 +10:00
Jeremy W. Murphy
e3101bc0eb Return pair of <T, I> that includes the termination position. 2016-05-07 14:33:35 +10:00
Jeremy W. Murphy
df8c6584dc Rename gcd_n to gcd_range. 2016-05-07 10:58:43 +10:00
Kolya Matteo
8336375c78 Fix corner cases for raise_error
This enables raise_error to work when no %1% appears in the `function` or
`message` parameters and for types without numeric_limits specializations.
Also removes misformat when BOOST_NO_RTTI is defined.
2016-05-05 18:10:43 -04:00
Kolya Matteo
430239841d Add missing normalization in polynomial initializer_list assignment 2016-05-02 14:08:25 -04:00
Kolya Matteo
589a18f63f Don't assume default-constructibility 2016-05-02 09:52:41 -04:00
Kolya Matteo
627a4cedfd Multiply into a new vector and swap 2016-05-01 23:55:28 -04:00
Kolya Matteo
9c8e3f2d4b Fix self-multiply-assign by backing down 2016-05-01 23:18:50 -04:00
Kolya Matteo
ca07aa8a0a Fix indefinite hang with p *= p 2016-05-01 20:47:54 -04:00
Jeremy W. Murphy
2168585e98 Compute delta as late as possible. 2016-04-27 12:13:49 +10:00
Jeremy W. Murphy
8e25e0a487 Improve comments, remove superfluous using directive. 2016-04-27 12:12:20 +10:00
Jeremy W. Murphy
60d6a05d2c Prefer immediate return to goto. 2016-04-22 13:32:34 +10:00
Jeremy W. Murphy
d484fa657c Remove inferior generalized gcd; include integral size promotion. 2016-04-20 22:53:56 +10:00
Jeremy W. Murphy
dc81bc8e6e Add 4.6.1E, generalized gcd.
Should be useful for cross-validating 4.6.1C.
2016-04-20 01:38:05 +10:00
jzmaddock
1ef4bb6490 Add mixed binary algorithm plus gcd_traits class with bitscan support. 2016-04-18 13:50:01 +01:00
Jeremy W. Murphy
aa19132d74 4.6.1C: Greatest common divisor over a unique factorization domain. 2016-04-17 14:21:01 +10:00
Jeremy W. Murphy
5bfe2a7b15 Efficient conversion to bool.
This will save a lot of (x == zero_element<...>(...)) syntax that is not
only unwieldy but inefficient.
2016-04-17 13:42:50 +10:00
Jeremy W. Murphy
d6dd40def6 Contextual comment and zero case for pp(). 2016-04-15 14:17:42 +10:00
Jeremy W. Murphy
573b9fc399 content and primitive_part of a polynomial over a ufd. 2016-04-15 13:14:18 +10:00
Jeremy W. Murphy
b3d398636c gcd_n: Further comments. 2016-04-15 07:29:38 +10:00
Jeremy W. Murphy
af28716e31 Algorithm description. 2016-04-14 22:58:46 +10:00
Jeremy W. Murphy
5b8c448ce0 gcd of n values. 2016-04-14 14:22:12 +10:00
jzmaddock
e9bafa3236 We need some using std::swap declarations. 2016-04-12 18:35:01 +01:00
Jeremy W. Murphy
e963c67af2 Normalize after left-shift assignment to prevent denormalized zeroes. 2016-04-10 01:27:36 +10:00
jzmaddock
07f5e1666b Get the tests passing with Jeremy's new gcd. 2016-04-06 19:16:47 +01:00
jzmaddock
9f5d39c5e1 Merge branch 'gcd_revamp' of https://github.com/jeremy-murphy/math into gcd
# Fixed Conflicts:
#	reporting/performance/test_gcd.cpp
#	test/test_gcd.cpp
2016-04-06 18:09:45 +01:00
jzmaddock
11500b787b Merge branch 'polynomial_shift' of https://github.com/jeremy-murphy/math into gcd
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2016-04-06 17:58:21 +01:00
Jeremy W. Murphy
473cc9f209 Use std::numeric_limits rather than Boost's built-in type_traits.
The Boost type traits are too strict about what qualifies as a signed
number.
2016-04-05 09:48:15 +10:00
Jeremy W. Murphy
fd11b9a4da Use <<= rather than <<. 2016-04-05 09:44:28 +10:00
Jeremy W. Murphy
232a64424f Use unqualified swap to allow ADL. 2016-04-05 09:41:59 +10:00
Jeremy W. Murphy
11e502b4ac New gcd implementation. 2016-04-04 18:36:53 +10:00
Jeremy W. Murphy
cff8705458 Consistent white space. 2016-03-28 16:08:04 +11:00
Jeremy W. Murphy
238cd6078b polynomial: odd/even predicates.
We use the definition of odd and even consistent with considering x as the
smallest prime factor. That is, an even polynomial has a constant of zero.
2016-03-28 16:04:27 +11:00