GNU 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 |
Release: |
No files currently attached
Depends on the following items: None found
Items that depend on this one: None found
Carbon-Copy List
No changes have been made to this item
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
(http://forge.scilab.org/index.php/p/mathieu/source/tree/master/)
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,
Vladimir