2
0
mirror of https://github.com/boostorg/math.git synced 2026-02-10 23:42:23 +00:00
Commit Graph

1917 Commits

Author SHA1 Message Date
jzmaddock
612c827bc6 Hypergeometrics: add pFq to specified precision. 2019-02-15 20:00:55 +00:00
jzmaddock
a060a48a01 1F1: Add better support for very small a when b < 0. 2019-02-15 20:00:15 +00:00
jzmaddock
da18aae70f More warning suppression, fix function signatures. 2019-02-15 19:59:21 +00:00
jzmaddock
76cb52af91 Bit of msvc warning suppression. 2019-02-15 19:58:15 +00:00
jzmaddock
a71c2c0887 1F1, A&S 13.3.6 selection logic: improve estimate of Bessel I convergence rate so we don't accidentally take this method when it is non-convergent. 2019-02-12 18:14:28 +00:00
jzmaddock
fa3e94ff79 1F1: large z case: can't have b-a as a negative integer. 2019-02-12 18:09:14 +00:00
jzmaddock
9eb6d5fc58 1F1, hypergeometric_1F1_backwards_recursion_on_b_for_negative_a: correct use of scaling. 2019-02-12 18:08:21 +00:00
jzmaddock
61af0415f4 1F1: large abz: Can't use A&S 13.3.6 when b-a = 1/2. 2019-02-12 18:07:19 +00:00
jzmaddock
71340ca0ad 1F1: extend A&S 13.3.6 to large z. 2019-02-12 18:06:15 +00:00
jzmaddock
ae71780588 1F1: Don't use special case for b-a == -1 when a is small. 2019-02-06 19:37:43 +00:00
jzmaddock
c603bf78a7 Hypergeometrics: Fix up some testing and conceptual errors flagged up by first CI run. 2019-02-06 18:42:09 +00:00
jzmaddock
978d10cacf 1F1: Fixes for expression template enabled types. 2019-02-04 18:21:48 +00:00
jzmaddock
9c238c07e4 1F1: Add some limits to the circumstances where we will try out the Bessel function approximations.
[CI SKIP]
2019-02-03 19:11:18 +00:00
jzmaddock
3dddfaa916 1F1: Calculate and cache Bessel I and J values for A&S 13.3.7 Tricomi via recurrences.
This completes the Bessel approximation TODO's.
2019-02-03 19:09:39 +00:00
jzmaddock
bc96c5c44f 1F1: correct hypergeometric_1F1_backwards_recursion_on_b_for_negative_a for the case where b > 0. 2019-02-03 18:52:46 +00:00
jzmaddock
4f0f6817e0 1F1: Add missing typecast to enum. 2019-02-03 18:51:35 +00:00
jzmaddock
40d3871ea0 Bessel Iterators: Add missing constructor to bessel_j_backwards_iterator and new bessel_i_forwards_iterator for forward iteration on I_v(x) with v < 0. 2019-02-03 18:50:51 +00:00
jzmaddock
0f1dd75f08 BesselJY: Correct overflow handling so we get infinity rather than a NaN 2019-02-03 18:46:40 +00:00
jzmaddock
a187b714e9 1F1: Apply backwards recurrence relations for GammaP in large a,b,z approximation.
[CI SKIP]
2019-01-31 19:06:17 +00:00
jzmaddock
30af3aebd2 Rewrite recurrence for negative a and b to use more efficient shifts.
Removes one more TODO.
[CI SKIP]
2019-01-30 18:28:24 +00:00
jzmaddock
8845f0d02a Remove unused recurrence relations. 2019-01-27 09:54:15 +00:00
jzmaddock
ff5ee61c69 hypergeometric_1F1_backward_recurrence_for_negative_a: remove dead code that can never be called in current version (code was inherited from original SOC project).
Also comment out some unused approximations.
2019-01-27 09:50:42 +00:00
jzmaddock
f00093cdf3 Test special cases, code tidy up, fix a couple of bugs exposed by new tests. 2019-01-27 09:28:56 +00:00
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