bugGNU Scientific Library - Bugs: bug #47402, Mathieu functions


You are not allowed to post comments on this tracker with your current authentication level.

bug #47402: Mathieu functions

Submitter:  Patrick Alken <psa>
Submitted:  Sun 13 Mar 2016 07:56:35 PM UTC
Category:  None Severity:  3 - Normal
Operating System:  Status:  None
Assigned to:  None Open/Closed:  Open

Sun 13 Mar 2016 07:56:35 PM UTC, original submission:  

from kisilv =at= maths =dot= leeds =dot= ac =dot= uk

Dear All,

I want to raise some issues with the implementation of Mathieu
  functions in GSL.

  1. Documentation says that every function in gsl_sf_mathieu.h returns
  int, however functions like

double gsl_sf_mathieu_ce (int N, double Q, double X)

  return double.

  2. In many cases Fourier coefficients are of interest to user, and
  they are indeed available to a user through

int gsl_sf_mathieu_a_coeff(int order, double qq, double aa, double coeff[]);
int gsl_sf_mathieu_b_coeff(int order, double qq, double aa, double coeff[]);

  However, the documentations does not tell this to users.

  3. In most cases a user is interested in many values of Mathieu
  functions for the same value of the parameter q. In a typical
  example, for every point of a 100x100 grid we need 5-10 different
  Mathieu function values with a same q. If evaluated from GSL, that
  will make hundred fousand identical calls to the above functions for
  Fourier coefficients.

  In SciLab
  there is a possibility to recycle those Fourier coefficients once they
  have been computed. GSL performance will significantly increase if it
  will have a similar feature (may be using workspace?)

  4. In many applications Mathieu functions are useless if you are not
  able to calculate values of their derivatives as well. For this
  reason, evaluation of derivatives of Mathieu functions is implemented
  in other packages (SciLab mentioned above, SciPy, etc.)

  In fact, evaluation of derivatives does not require much work within
  the library code: if the  Mathieu function is evaluated by summing up
  the terms An*cos(n*x), then the derivative is given by the sum of terms
  An*n*cos(n*x). However, there is no an easy and accurate way to find
  the derivative if only the value of functions are returned to a user.

  I hope this comments may help (but please let me know if you require
  actual patches rather than suggestions).
  Best wishes,

Patrick Alken <psa>
Group administrator


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by psa (Submitted the item)

    No changes have been made to this item

    Back to the top

    Powered by Savane 3.13-b921.
    Corresponding source code