2
0
mirror of https://github.com/boostorg/math.git synced 2026-01-27 19:12:08 +00:00
Commit Graph

1738 Commits

Author SHA1 Message Date
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
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
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
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
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
jzmaddock
3fa8aadde2 monte carlo integration: document and/or make explicit the semantics of all atomic operations. 2018-02-21 18:11:28 +00:00