URL:
  <https://savannah.gnu.org/bugs/?66850>

                 Summary: Feature: special cases hypergeometric2F1(a+1, b, a,
x) and hypergeometric2F1(a, b+1, b, x)
                   Group: GNU Scientific Library
               Submitter: fermelelundi
               Submitted: Wed 26 Feb 2025 12:16:00 PM UTC
                Category: Build
                Severity: 3 - Normal
        Operating System:
                  Status: None
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
                 Release: 2.8


    _______________________________________________________

Follow-up Comments:


-------------------------------------------------------
Date: Wed 26 Feb 2025 12:16:00 PM UTC By: Fermé le Lundi <fermelelundi>
Two more special cases for hypergeometric2F1:
hypergeometric2F1(a+1, b, a, x) = ((1 - x)^(-b) (-a + a x - b x))/(a (-1 +
x)), where a not equal 0
hypergeometric2F1(a, b+1, b, x) = ((1 - x)^(-a) (-b - a x + b x))/(b (-1 +
x)), where b not equal 0

Or, simplified and in Latex:
_2F_1(a+1, b, a, x) = \frac{1 - (1-\frac{b}{a})x}{(1-x)^{b+1}} \\
_2F_1(a, b+1, b, x) = \frac{1 - (1-\frac{a}{b})x}{(1-x)^{a+1}}

The attached diff-file includes these cases and below some test cases for
inclusion into specfunc/test_hyperg.c:

  TEST_SF(s, gsl_sf_hyperg_2F1_e, (2, 1, 1, 0, &r), 1, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (3, 2, 2, 0, &r), 1, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (4, 200, 3, 0, &r), 1, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (4, -500, 3, 0, &r), 1, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (2, 1, 1, 1/2.0, &r), 4, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (4, 1, 3, 1/2.0, &r), (2/3.0)+2, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (5, 1, 4, 1/2.0, &r), 2.5, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (10, 1, 9, 1/2.0, &r), (2/9.0)+2, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (-9, 1, -10, 1/2.0, &r), 9217/5120.0,
TEST_TOL0, GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (3, -1, 2, -1, &r), 5/2.0, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (-3, -1, -4, -1, &r), 7/4.0, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (2, -1, 1, -1, &r), 3, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (11, -1, 10, -1, &r), 2.1, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (0, 1, 2, 0, &r), 1, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (1, 3, 2, 0, &r), 1, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (2, 30, 29, 0, &r), 1, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (200, -1, -2, 0, &r), 1, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (-500, -1, -2, 0, &r), 1, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (1, 5, 4, 1/2.0, &r), 5/2.0, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (1, 15, 14, 1/2.0, &r), 15/7.0, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (1, -2, -3, 1/2.0, &r), 17/12.0, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (1, -12, -13, 1/2.0, &r), 98305/53248.0,
TEST_TOL0, GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (-1, 5, 4, -1, &r), 9/4.0, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_hyperg_2F1_e, (-1, 3, 2, -1, &r), 2.5, TEST_TOL0,
GSL_SUCCESS);







    _______________________________________________________
File Attachments:


-------------------------------------------------------
Name: specfunc_hyperg_2F1.diff  Size: 674B
<https://file.savannah.gnu.org/file/specfunc_hyperg_2F1.diff?file_id=56955>

    AGPL NOTICE

These attachments are served by Savane. You can download the corresponding
source code of Savane at
https://savannah.gnu.org/source/savane-513955078e56c124c506c834d031bbe09cbf4040.tar.gz

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?66850>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/

Attachment: signature.asc
Description: PGP signature

Reply via email to