jzmaddock
bb104ce44f
1F1: optimise performance of A&S 13.6.4 approximation.
...
Cache Bessel I values via backwards recursion.
[CI SKIP]
2019-01-20 18:26:59 +00:00
jzmaddock
d57b689b86
Merge branch 'hypergeometric_soc_2014' of https://github.com/boostorg/math into hypergeometric_soc_2014
2019-01-20 11:28:05 +00:00
jzmaddock
fbba64a30c
1F1: Fix some multiprecision errors, refactor difficult/unsolved cases into separate tests and only test where appropriate.
...
[CI SKIP]
2019-01-20 11:27:38 +00:00
Nick Thompson
b576cb0ce7
Fix non-portable include path warning. [CI SKIP]
2019-01-18 20:45:36 -07:00
jzmaddock
695486b1ce
hypergeometrics: Correct all the conceptual errors, fix up concept tests and generally test many more types.
...
[CI SKIP]
2019-01-18 19:31:50 +00:00
jzmaddock
73cf58243e
1F1: Correct typo in type name.
2019-01-17 18:16:13 +00:00
jzmaddock
def238994e
Improve and test the recurrence tools.
...
[CI SKIP]
2019-01-15 19:31:31 +00:00
jzmaddock
7936e9892f
1F1: Lots of small corrections to support multiprecision types.
2019-01-14 18:58:45 +00:00
jzmaddock
0703952423
1F1: Add special handling for a,b,z all positive and large.
...
[CI SKIP]
2019-01-03 12:00:58 +00:00
jzmaddock
f145a69538
1F1: Fix special case in Bessel approximation where b-a == 0
2019-01-03 11:59:51 +00:00
jzmaddock
16f7c25c18
1F1: big method selection logic update:
...
* Hook up A&S 13.3.6 Bessel approximation for a ~ b.
* Refactor selection logic into separate functions.
* Remove one workaround-method that is no longer needed.
* Apply rescaling for a == b special case.
[CI SKIP]
2018-12-27 19:17:50 +00:00
jzmaddock
1c99408605
hypergeometric_pFq_checked_series.hpp: Big update to correctly handle negative b crossing the origin, also variable b values.
2018-12-27 19:13:59 +00:00
jzmaddock
020271df64
hypergeometric_1F1_by_ratios.hpp: rescale when the first value is large.
2018-12-27 19:11:07 +00:00
jzmaddock
9151be85c5
hypergeometric_1f1_addition_theorems_on_z.hpp: remove dead code.
2018-12-27 19:10:20 +00:00
jzmaddock
43a07c92f9
Recurrence: correct forward recurrence algorithm.
2018-12-27 19:09:31 +00:00
jzmaddock
dd8681a81c
1F1: add correction to hypergeometric_1F1_AS_13_3_6.
2018-12-27 19:08:49 +00:00
jzmaddock
f0d7c5a3ae
1F1: apply scaling consistently throughout the recurrence relations.
2018-12-24 10:51:23 +00:00
jzmaddock
9759161f10
1F1: refactor fallbacks for negative a and b into separate routine. Hook up recursion for negative a and b when better than the series.
2018-12-24 09:54:00 +00:00
jzmaddock
5e3f679cbe
1F1: Use scaling in recurrence relations.
2018-12-24 09:52:33 +00:00
jzmaddock
21dcbe3278
1F1: Implement scaling in recurrence relations.
2018-12-24 09:51:38 +00:00
jzmaddock
2bc20f88e2
1F1: Add method of function ratios for a,b < 0.
...
We now have a broadly acceptable error (< 10^4eps) or an exception over all domains.
[CI SKIP]
2018-12-23 15:58:03 +00:00
jzmaddock
a128331e9c
1F1: Add support for calculating function ratios directly from recurrence relations.
...
Use this to implement 1F1 for b < 0 < a,z and z << -b.
[CI SKIP]
2018-12-23 11:57:53 +00:00
jzmaddock
456538ddd4
Merge branch 'develop' into hypergeometric_soc_2014
...
[CI SKIP]
2018-12-20 09:09:29 +00:00
jzmaddock
8164299495
1F1: improve recurrence code and hook up the selection logic.
...
This probably completes 1F1 for the domain a < 0 < b,z, although the code is still on the brain-dead side and badly needs optimizing.
[CI SKIP]
2018-12-20 08:56:06 +00:00
jzmaddock
298c83e71c
1F1: improve method selection logic.
...
The only really gross failures now are exceptions due to non-convergence.
There are also some large errors in certain regions - notable b large and negative, a large and positive, we don't currently have a method that works for that, need to investigate Miller type methods.
[CI SKIP]
2018-12-15 11:59:25 +00:00
jzmaddock
d907eb347a
1F1: Improve bessel approximation fallback methods.
2018-12-15 11:57:16 +00:00
jzmaddock
b8a94228ad
1F1: rewrite the large-z asymptotic approximation to prevent moving into the divergent area.
2018-12-15 11:56:44 +00:00
jzmaddock
0816bf0e87
1F1: improve bessel function failure modes, and improve selection logic.
2018-12-10 19:26:56 +00:00
jzmaddock
ce6b50fb90
1F1: Fix up issues with very small a.
...
[CI SKIP]
2018-12-09 16:45:09 +00:00
jzmaddock
a6e2b2107e
1F1: change parameters to hypergeometric_1F1_AS_13_3_6.
...
In case we're applying Kummer's relation and then calling this.
[CI SKIP]
2018-12-09 08:47:56 +00:00
Nick Thompson
01c004bb06
Remove useless termination criteria [CI SKIP]
2018-12-07 10:17:33 -07:00
Nick Thompson
d2bf1b18fd
Merge branch 'develop' into complex_newton
2018-12-07 09:03:08 -07:00
jzmaddock
0152cfa2a9
Incomplete gamma: add asymptotic approximation for large argument.
...
Allows the functions to be used with very large (or infinite) argument.
Fixes: https://github.com/boostorg/math/issues/168 .
2018-12-07 09:37:50 +00:00
Nick Thompson
37336e2372
Merge branch 'develop' into complex_newton
2018-12-04 14:28:52 -07:00
jzmaddock
847b39a0ab
1F1: rework recurrence relations.
...
[CI SKIP]
2018-12-04 19:24:34 +00:00
Nick Thompson
6e25e27d01
Merge branch 'develop' into complex_newton
2018-12-04 11:09:06 -07:00
Nick Thompson
baddf9509a
The move constructor is 30% faster than the copy; hence remove the data copy and only allow move construction. [CI SKIP]
2018-12-02 13:34:51 -07:00
Nick Thompson
fd519a73d6
Implement suggestions from code review [CI SKIP]
2018-12-02 11:18:41 -07:00
jzmaddock
fad061124f
1F1: Slowly improving accuracy for small a, b, z.
...
Also added a new bessel approximation (which is not that useful to be honest).
[CI SKIP]
2018-12-02 18:04:27 +00:00
jzmaddock
c0f236e251
Merge branch 'develop' into catmull_rom
...
Fixed Conflicts:
doc/Jamfile.v2
Corrected some doc formatting, and regenerated the docs.
2018-12-01 19:38:16 +00:00
jzmaddock
33d3d0942f
Merge branch 'polynomial_constructor' into develop
2018-12-01 11:21:27 +00:00
jzmaddock
7abcd6ef4a
roots.hpp: Don't allow division by zero (or overflow) even though it's harmless in this case.
...
Fixes: https://github.com/boostorg/math/issues/164
2018-12-01 10:09:39 +00:00
jzmaddock
889793b51e
Add missing file.
2018-11-30 19:59:06 +00:00
jzmaddock
db408fde2b
roots.hpp: clean up code so that there is no division by zero possible.
...
Fixes: https://github.com/boostorg/math/issues/160 .
2018-11-30 19:54:34 +00:00
jzmaddock
451afc3102
Fix polynomial template constructors.
2018-11-30 19:31:51 +00:00
Nick Thompson
d46f746cb3
Move to clustered roots termination criteria rather than range magnitude. [CI SKIP]
2018-11-28 16:31:13 -07:00
Nick Thompson
66373a0b22
Fix failing unit test by using semi-scale invariant termination criteria. [CI SKIP]
2018-11-28 14:35:34 -07:00
jzmaddock
4041d6ee55
Merge branch 'hypergeometric_soc_2014' of https://github.com/boostorg/math into hypergeometric_soc_2014
2018-11-28 19:19:21 +00:00
jzmaddock
19150f8c0b
1F1: add addition theorem routines.
...
None of these are used yet...
[CI SKIP]
2018-11-28 19:18:58 +00:00
Nick Thompson
3ab69d00ee
Complex Newton's method. Zero derivatives handled by Muller's Method.
2018-11-25 00:19:11 -07:00