mirror of
https://github.com/boostorg/math.git
synced 2026-01-19 04:22:09 +00:00
hypergeometric_0F1_bessel.hpp coverage.
This commit is contained in:
@@ -20,12 +20,11 @@
|
||||
{
|
||||
BOOST_MATH_STD_USING
|
||||
|
||||
const bool is_z_nonpositive = z <= 0;
|
||||
//const bool is_z_nonpositive = z <= 0;
|
||||
BOOST_MATH_ASSERT(z < 0); // condition used at call site
|
||||
|
||||
const T sqrt_z = is_z_nonpositive ? T(sqrt(-z)) : T(sqrt(z));
|
||||
const T bessel_mult = is_z_nonpositive ?
|
||||
boost::math::cyl_bessel_j(b - 1, 2 * sqrt_z, pol) :
|
||||
boost::math::cyl_bessel_i(b - 1, 2 * sqrt_z, pol) ;
|
||||
const T sqrt_z = sqrt(-z);
|
||||
const T bessel_mult = boost::math::cyl_bessel_j(b - 1, 2 * sqrt_z, pol);
|
||||
|
||||
if (b > boost::math::max_factorial<T>::value)
|
||||
{
|
||||
|
||||
@@ -49,7 +49,7 @@ void expected_results()
|
||||
".*", // platform
|
||||
largest_type, // test type(s)
|
||||
"Large.*", // test data group
|
||||
".*", 400, 100); // test function
|
||||
".*", 1100, 300); // test function
|
||||
|
||||
|
||||
//
|
||||
|
||||
@@ -178,7 +178,7 @@ void test_spots(T, const char* type_name)
|
||||
{SC_(19.75), SC_(-20.25), SC_(0.34910186209886263988734004369646266800659689838760)}, {SC_(19.75), SC_(-16.25), SC_(0.43171851514846723176830271990344447636246814031258)}, {SC_(19.75), SC_(-12.25), SC_(0.53264760691226214051563276361223610040193575209722)}, {SC_(19.75), SC_(-8.25), SC_(0.65570932018638949205413006445398352201545799769694)}, {SC_(19.75), SC_(-4.25), SC_(0.80547695536244789152425915957330496255335464733020)}, {SC_(19.75), SC_(-0.25), SC_(0.98741773517508964436868231216434995093107999788450)}, {SC_(19.75), SC_(3.75), SC_(1.2080586524527299846909832323308446155063281314444)}, {SC_(19.75), SC_(7.75), SC_(1.4751816095060559707610879513647971547078203326785)}, {SC_(19.75), SC_(11.75), SC_(1.7980527870029919079278807774802021351478928537606)}, {SC_(19.75), SC_(15.75), SC_(2.1876919765295108137252526717389200156554872202073)}, {SC_(19.75), SC_(19.75), SC_(2.6571885305131654484163938203293169727636168525176)}
|
||||
} };
|
||||
|
||||
static const std::array<std::array<T, 3>, 49> hypergeometric_0F1_large_data = { {
|
||||
static const std::array<std::array<T, 3>, 52> hypergeometric_0F1_large_data = { {
|
||||
{SC_(-3000.25), SC_(-3000.25), SC_(2.7187352281773126038196142076996225709478475910049)},
|
||||
{SC_(-3000.25), SC_(-2000.25), SC_(1.9479325178881941977364868969702984561194629278005)},
|
||||
{SC_(-3000.25), SC_(-1000.25), SC_(1.3957158200680510708579318399559946925035296441969)},
|
||||
@@ -210,6 +210,9 @@ void test_spots(T, const char* type_name)
|
||||
{SC_(999.75), SC_(-3000.25), SC_(0.049513102314849089089531272645546209356947364503693)}, {SC_(999.75), SC_(-2000.25), SC_(0.13496287555692361766808821455578584612232691847368)}, {SC_(999.75), SC_(-1000.25), SC_(0.36751140843960205420082946295266027163679747815171)}, {SC_(999.75), SC_(-0.25), SC_(0.99974996871616159816731662896550362438335384158579)}, {SC_(999.75), SC_(999.75), SC_(2.7169258487486599795213704968075693651612629011137)}, {SC_(999.75), SC_(1999.75), SC_(7.3761834991423536961023917193398034973414374920724)}, {SC_(999.75), SC_(2999.75), SC_(20.005752597249211333476751024563565243417014841294)},
|
||||
{SC_(1999.75), SC_(-3000.25), SC_(0.22293486720691878909733143630236248153349047769471)}, {SC_(1999.75), SC_(-2000.25), SC_(0.36769546312912945115503617374640562125026416585911)}, {SC_(1999.75), SC_(-1000.25), SC_(0.60637900493362087991135014744274427763909334895653)}, {SC_(1999.75), SC_(-0.25), SC_(0.99987499218326921518475889542511447173965188103381)}, {SC_(1999.75), SC_(999.75), SC_(1.6485152791856256326123376967789594359576461105786)}, {SC_(1999.75), SC_(1999.75), SC_(2.7176030495659989803962821602572269144434394541710)}, {SC_(1999.75), SC_(2999.75), SC_(4.4794520688544123057192034298995619570726142156707)},
|
||||
{SC_(2999.75), SC_(-3000.25), SC_(0.36775679765931355729803647936785321939707796855752)}, {SC_(2999.75), SC_(-2000.25), SC_(0.51330776829498225175667208437735196999610552588713)}, {SC_(2999.75), SC_(-1000.25), SC_(0.71643841877594009499597675075273584291266593195763)}, {SC_(2999.75), SC_(-0.25), SC_(0.99991666319319078123594326189204686183292938405581)}, {SC_(2999.75), SC_(999.75), SC_(1.3955090626492889292016427682906884819283986108381)}, {SC_(2999.75), SC_(1999.75), SC_(1.9475357570910758403975860806320078849962664462281)}, {SC_(2999.75), SC_(2999.75), SC_(2.7178291334815105222784044221313459883434486746788)},
|
||||
{SC_(190.25), SC_(-10000.75), SC_(1.4750057478240259502978056596880193011950123904017370507273e-31)},
|
||||
{SC_(192.25), SC_(-10000.75), SC_(1.3702644191119456726760786567669231339553195106433263692267e-29)},
|
||||
{SC_(192.25), SC_(-8000.75), SC_(8.9691784861188665237766513631329658977665974807542912974906e-22)},
|
||||
} };
|
||||
|
||||
do_test_0F1<T>(hypergeometric_0F1_integer_data, type_name, "Integer Arguments");
|
||||
|
||||
Reference in New Issue
Block a user