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

                 Summary: Bug: Airy Ai function values inaccurate
                   Group: GNU Scientific Library
               Submitter: fermelelundi
               Submitted: Mon 17 Feb 2025 02:27:45 PM UTC
                Category: Accuracy problem
                Severity: 3 - Normal
        Operating System: Linux
                  Status: None
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
                 Release: 2.9


    _______________________________________________________

Follow-up Comments:


-------------------------------------------------------
Date: Mon 17 Feb 2025 02:27:45 PM UTC By: Fermé le Lundi <fermelelundi>
The Airy Ai function gsl_sf_airy_Ai_e() exhibits progressively larger
deviations from the actual value the further away from the origin.

Some tests which can be inserted into specfunc/test_airy.c to demonstrate the
issue and of which the first few have been commented out to make the `make
check` step pass:

/*  TEST_SF(s, gsl_sf_airy_Ai_e, (10, m, &r), 0.0000000001104753, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_airy_Ai_e, (9, m, &r), 0.0000000024711684, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_airy_Ai_e, (8, m, &r), 0.0000000469220762, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_airy_Ai_e, (7, m, &r), 0.0000007492128864, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_airy_Ai_e, (6, m, &r), 0.0000099476943603, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_airy_Ai_e, (5, m, &r), 0.0001083444281361, TEST_TOL0,
GSL_SUCCESS);*/
  TEST_SF(s, gsl_sf_airy_Ai_e, (4, m, &r), 0.0009515638512048, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_airy_Ai_e, (3, m, &r), 0.0065911393574607, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_airy_Ai_e, (2, m, &r), 0.0349241304232744, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_airy_Ai_e, (1, m, &r), 0.1352924163128814, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_airy_Ai_e, (0, m, &r), 0.3550280538878172, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_airy_Ai_e, (-1, m, &r), 0.5355608832923521, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_airy_Ai_e, (-2, m, &r), 0.2274074282016856, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_airy_Ai_e, (-3, m, &r), -0.3788142936776582, TEST_TOL0,
GSL_SUCCESS);
  TEST_SF(s, gsl_sf_airy_Ai_e, (-4, m, &r), -0.0702655329492897, TEST_TOL0,
GSL_SUCCESS);  /* last digit should be 5 instead of 7 */
  TEST_SF(s, gsl_sf_airy_Ai_e, (-5, m, &r), 0.3507610090241141, TEST_TOL0,
GSL_SUCCESS);   /* last digit should be 3 instead of 1 */
  TEST_SF(s, gsl_sf_airy_Ai_e, (-6, m, &r), -0.3291451736298232, TEST_TOL0,
GSL_SUCCESS);  /* last digit should be 1 instead of 2 */
  TEST_SF(s, gsl_sf_airy_Ai_e, (-7, m, &r), 0.1842808352505061, TEST_TOL0,
GSL_SUCCESS);   /* last digit should be 4 instead of 1 */
  TEST_SF(s, gsl_sf_airy_Ai_e, (-8, m, &r), -0.0527050503563859, TEST_TOL0,
GSL_SUCCESS);  /* last digits should be 62 instead of 59 */
  TEST_SF(s, gsl_sf_airy_Ai_e, (-9, m, &r), -0.0221337215473412, TEST_TOL0,
GSL_SUCCESS);  /* last digit should be 4 instead of 2 */
  TEST_SF(s, gsl_sf_airy_Ai_e, (-10, m, &r), 0.0402412384864441, TEST_TOL0,
GSL_SUCCESS);  /* last digits should be 32 instead of 41 */

Together with #52570 and #52359 it appears that the Airy Ai implementation
needs a review.







    _______________________________________________________

Reply to this item at:

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

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

Attachment: signature.asc
Description: PGP signature

Reply via email to