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