This is the mail archive of the gsl-discuss@sourceware.org mailing list for the GSL project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Issue with Mathieu Function Code


The GSL special functions are each supposed to have two alternative
functional interfaces, a pure one:

double function(x, ...)

and one allowing for full error returns:

int function_e(x, ...  gsl_sf_result * result)

But the Mathieu function code doesn't follow this convention.

It doesn't offer the former interface at all and uses the second
convention for all its functions BUT without the '_e' name extension on
its function declarations. 

This is quite error prone since it is easy to assume that *gsl_sf_result
is simply a reference to a double when in fact it is a structure that is
longer than this (a library user on Windows made exactly this mistake
and wondered why his code was causing an illegal access exception).

I am doubtful that this is an intentional feature of the Mathieu
function code so I have created the attached patch to update the code to
use the normal conventions of the GSL special functions.  (this needs
testing since I have only tried it on WIndows).

If this is adopted, the documentation will need updating as well
(unfortunately I am unable to do this).

  with my best regards,

      Brian Gladman

Attachment: mathieu.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]