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

Submitted by:  Patrick Alken <psa>
Submitted on:  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>
Project Administrator


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.4