public inbox for gsl-discuss@sourceware.org
 help / color / mirror / Atom feed
From: Brian Gladman <brg@gladman.plus.com>
To: gsl-discuss@sourceware.org
Subject: Issue with Mathieu Function Code
Date: Sat, 31 Aug 2013 18:11:00 -0000	[thread overview]
Message-ID: <522231C2.1060908@gladman.plus.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 1142 bytes --]

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 #2: mathieu.patch --]
[-- Type: text/plain, Size: 14254 bytes --]

Left file: C:\Users\brian\AppData\Local\Temp\qbzr\bzr-diff-kryjkr\1\specfunc\gsl_sf_mathieu.h
Right file: C:\Users\brian\Documents\Visual Studio 2013\Projects\gsl\specfunc\gsl_sf_mathieu.h
70,71c70,73
< int gsl_sf_mathieu_a(int order, double qq, gsl_sf_result *result);
< int gsl_sf_mathieu_b(int order, double qq, gsl_sf_result *result);
---
> int gsl_sf_mathieu_a_e(int order, double qq, gsl_sf_result *result);
> double gsl_sf_mathieu_a(int order, double qq);
> int gsl_sf_mathieu_b_e(int order, double qq, gsl_sf_result *result);
> double gsl_sf_mathieu_b(int order, double qq);
83,84c85,88
< int gsl_sf_mathieu_ce(int order, double qq, double zz, gsl_sf_result *result);
< int gsl_sf_mathieu_se(int order, double qq, double zz, gsl_sf_result *result);
---
> int gsl_sf_mathieu_ce_e(int order, double qq, double zz, gsl_sf_result *result);
> double gsl_sf_mathieu_ce(int order, double qq, double zz);
> int gsl_sf_mathieu_se_e(int order, double qq, double zz, gsl_sf_result *result);
> double gsl_sf_mathieu_se(int order, double qq, double zz);
93c97
< int gsl_sf_mathieu_Mc(int kind, int order, double qq, double zz,
---
> int gsl_sf_mathieu_Mc_e(int kind, int order, double qq, double zz,
95c99,100
< int gsl_sf_mathieu_Ms(int kind, int order, double qq, double zz,
---
> double gsl_sf_mathieu_Mc(int kind, int order, double qq, double zz);
> int gsl_sf_mathieu_Ms_e(int kind, int order, double qq, double zz,
96a102
> double gsl_sf_mathieu_Ms(int kind, int order, double qq, double zz);

Left file: C:\Users\brian\AppData\Local\Temp\qbzr\bzr-diff-kryjkr\1\specfunc\mathieu_charv.c
Right file: C:\Users\brian\Documents\Visual Studio 2013\Projects\gsl\specfunc\mathieu_charv.c
370c370
< int gsl_sf_mathieu_a(int order, double qq, gsl_sf_result *result)
---
> int gsl_sf_mathieu_a_e(int order, double qq, gsl_sf_result *result)
398c398
<           return gsl_sf_mathieu_a(order, -qq, result);
---
>           return gsl_sf_mathieu_a_e(order, -qq, result);
400c400
<           return gsl_sf_mathieu_b(order, -qq, result);
---
>           return gsl_sf_mathieu_b_e(order, -qq, result);
496c496
< int gsl_sf_mathieu_b(int order, double qq, gsl_sf_result *result)
---
> int gsl_sf_mathieu_b_e(int order, double qq, gsl_sf_result *result)
530c530
<           return gsl_sf_mathieu_b(order, -qq, result);
---
>           return gsl_sf_mathieu_b_e(order, -qq, result);
532c532
<           return gsl_sf_mathieu_a(order, -qq, result);
---
>           return gsl_sf_mathieu_a_e(order, -qq, result);
875a876,889
> 
> /*-*-*-*-*-*-*-*-*-* Functions w/ Natural Prototypes *-*-*-*-*-*-*-*-*-*-*/
> 
> #include "eval.h"
> 
> GSL_FUN double gsl_sf_mathieu_a(int order, double qq)
> {
> 	EVAL_RESULT(gsl_sf_mathieu_a_e(order, qq, &result));
> }
> 
> GSL_FUN double gsl_sf_mathieu_b(int order, double qq)
> {
> 	EVAL_RESULT(gsl_sf_mathieu_b_e(order, qq, &result));
> }

Left file: C:\Users\brian\AppData\Local\Temp\qbzr\bzr-diff-kryjkr\1\specfunc\mathieu_angfunc.c
Right file: C:\Users\brian\Documents\Visual Studio 2013\Projects\gsl\specfunc\mathieu_angfunc.c
30c30
< int gsl_sf_mathieu_ce(int order, double qq, double zz, gsl_sf_result *result)
---
> int gsl_sf_mathieu_ce_e(int order, double qq, double zz, gsl_sf_result *result)
66c66
<   status = gsl_sf_mathieu_a(order, qq, &aa);
---
>   status = gsl_sf_mathieu_a_e(order, qq, &aa);
112c112
< int gsl_sf_mathieu_se(int order, double qq, double zz, gsl_sf_result *result)
---
> int gsl_sf_mathieu_se_e(int order, double qq, double zz, gsl_sf_result *result)
152c152
<   status = gsl_sf_mathieu_b(order, qq, &aa);
---
>   status = gsl_sf_mathieu_b_e(order, qq, &aa);
350a351,364
> 
> /*-*-*-*-*-*-*-*-*-* Functions w/ Natural Prototypes *-*-*-*-*-*-*-*-*-*-*/
> 
> #include "eval.h"
> 
> GSL_FUN double gsl_sf_mathieu_ce(int order, double qq, double zz)
> {
> 	EVAL_RESULT(gsl_sf_mathieu_ce_e(order, qq, zz, &result));
> }
> 
> GSL_FUN double gsl_sf_mathieu_se(int order, double qq, double zz)
> {
> 	EVAL_RESULT(gsl_sf_mathieu_se_e(order, qq, zz, &result));
> }

Left file: C:\Users\brian\AppData\Local\Temp\qbzr\bzr-diff-kryjkr\1\specfunc\mathieu_radfunc.c
Right file: C:\Users\brian\Documents\Visual Studio 2013\Projects\gsl\specfunc\mathieu_radfunc.c
30c30
< int gsl_sf_mathieu_Mc(int kind, int order, double qq, double zz,
---
> int gsl_sf_mathieu_Mc_e(int kind, int order, double qq, double zz,
62c62
<   status = gsl_sf_mathieu_a(order, qq, &aa);
---
>   status = gsl_sf_mathieu_a_e(order, qq, &aa);
136c136
< int gsl_sf_mathieu_Ms(int kind, int order, double qq, double zz,
---
> int gsl_sf_mathieu_Ms_e(int kind, int order, double qq, double zz,
176c176
<   status = gsl_sf_mathieu_b(order, qq, &aa);
---
>   status = gsl_sf_mathieu_b_e(order, qq, &aa);
474a475,488
> 
> /*-*-*-*-*-*-*-*-*-* Functions w/ Natural Prototypes *-*-*-*-*-*-*-*-*-*-*/
> 
> #include "eval.h"
> 
> GSL_FUN double gsl_sf_mathieu_Mc(int kind, int order, double qq, double zz)
> {
> 	EVAL_RESULT(gsl_sf_mathieu_Mc_e(kind, order, qq, zz, &result));
> }
> 
> GSL_FUN double gsl_sf_mathieu_Ms(int kind, int order, double qq, double zz)
> {
> 	EVAL_RESULT(gsl_sf_mathieu_Ms_e(kind, order, qq, zz, &result));
> }

Left file: C:\Users\brian\AppData\Local\Temp\qbzr\bzr-diff-cav0a0\1\specfunc\test_mathieu.c
Right file: C:\Users\brian\Documents\Visual Studio 2013\Projects\gsl\specfunc\test_mathieu.c
37c37
<   TEST_SF(s, gsl_sf_mathieu_ce, (0, 0.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (0, 0.0, 0.0, &r),
39c39
<   TEST_SF(s, gsl_sf_mathieu_ce, (0, 0.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (0, 0.0, M_PI_2, &r),
41c41
<   TEST_SF(s, gsl_sf_mathieu_ce, (0, 5.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (0, 5.0, 0.0, &r),
43c43
<   TEST_SF(s, gsl_sf_mathieu_ce, (0, 5.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (0, 5.0, M_PI_2, &r),
45c45
<   TEST_SF(s, gsl_sf_mathieu_ce, (0, 10.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (0, 10.0, 0.0, &r),
47c47
<   TEST_SF(s, gsl_sf_mathieu_ce, (0, 10.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (0, 10.0, M_PI_2, &r),
49c49
<   TEST_SF(s, gsl_sf_mathieu_ce, (0, 15.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (0, 15.0, 0.0, &r),
51c51
<   TEST_SF(s, gsl_sf_mathieu_ce, (0, 15.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (0, 15.0, M_PI_2, &r),
53c53
<   TEST_SF(s, gsl_sf_mathieu_ce, (0, 20.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (0, 20.0, 0.0, &r),
55c55
<   TEST_SF(s, gsl_sf_mathieu_ce, (0, 20.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (0, 20.0, M_PI_2, &r),
57c57
<   TEST_SF(s, gsl_sf_mathieu_ce, (0, 25.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (0, 25.0, 0.0, &r),
59c59
<   TEST_SF(s, gsl_sf_mathieu_ce, (0, 25.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (0, 25.0, M_PI_2, &r),
61c61
<   TEST_SF(s, gsl_sf_mathieu_ce, (1, 0.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (1, 0.0, 0.0, &r),
63c63
<   TEST_SF(s, gsl_sf_mathieu_ce, (1, 5.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (1, 5.0, 0.0, &r),
65c65
<   TEST_SF(s, gsl_sf_mathieu_ce, (1, 10.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (1, 10.0, 0.0, &r),
67c67
<   TEST_SF(s, gsl_sf_mathieu_ce, (1, 15.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (1, 15.0, 0.0, &r),
69c69
<   TEST_SF(s, gsl_sf_mathieu_ce, (1, 20.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (1, 20.0, 0.0, &r),
71c71
<   TEST_SF(s, gsl_sf_mathieu_ce, (1, 25.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (1, 25.0, 0.0, &r),
73c73
<   TEST_SF(s, gsl_sf_mathieu_se, (1, 0.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (1, 0.0, M_PI_2, &r),
75c75
<   TEST_SF(s, gsl_sf_mathieu_se, (1, 5.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (1, 5.0, M_PI_2, &r),
77c77
<   TEST_SF(s, gsl_sf_mathieu_se, (1, 10.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (1, 10.0, M_PI_2, &r),
79c79
<   TEST_SF(s, gsl_sf_mathieu_se, (1, 15.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (1, 15.0, M_PI_2, &r),
81c81
<   TEST_SF(s, gsl_sf_mathieu_se, (1, 20.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (1, 20.0, M_PI_2, &r),
83c83
<   TEST_SF(s, gsl_sf_mathieu_se, (1, 25.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (1, 25.0, M_PI_2, &r),
85c85
<   TEST_SF(s, gsl_sf_mathieu_ce, (2, 0.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (2, 0.0, 0.0, &r),
87c87
<   TEST_SF(s, gsl_sf_mathieu_ce, (2, 0.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (2, 0.0, M_PI_2, &r),
89c89
<   TEST_SF(s, gsl_sf_mathieu_ce, (2, 5.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (2, 5.0, 0.0, &r),
91c91
<   TEST_SF(s, gsl_sf_mathieu_ce, (2, 5.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (2, 5.0, M_PI_2, &r),
93c93
<   TEST_SF(s, gsl_sf_mathieu_ce, (2, 10.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (2, 10.0, 0.0, &r),
95c95
<   TEST_SF(s, gsl_sf_mathieu_ce, (2, 10.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (2, 10.0, M_PI_2, &r),
97c97
<   TEST_SF(s, gsl_sf_mathieu_ce, (2, 15.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (2, 15.0, 0.0, &r),
99c99
<   TEST_SF(s, gsl_sf_mathieu_ce, (2, 15.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (2, 15.0, M_PI_2, &r),
101c101
<   TEST_SF(s, gsl_sf_mathieu_ce, (2, 20.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (2, 20.0, 0.0, &r),
103c103
<   TEST_SF(s, gsl_sf_mathieu_ce, (2, 20.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (2, 20.0, M_PI_2, &r),
105c105
<   TEST_SF(s, gsl_sf_mathieu_ce, (2, 25.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (2, 25.0, 0.0, &r),
107c107
<   TEST_SF(s, gsl_sf_mathieu_ce, (2, 25.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (2, 25.0, M_PI_2, &r),
109c109
<   TEST_SF(s, gsl_sf_mathieu_ce, (5, 0.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (5, 0.0, 0.0, &r),
111c111
<   TEST_SF(s, gsl_sf_mathieu_ce, (5, 5.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (5, 5.0, 0.0, &r),
113c113
<   TEST_SF(s, gsl_sf_mathieu_ce, (5, 10.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (5, 10.0, 0.0, &r),
115c115
<   TEST_SF(s, gsl_sf_mathieu_ce, (5, 15.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (5, 15.0, 0.0, &r),
117c117
<   TEST_SF(s, gsl_sf_mathieu_ce, (5, 20.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (5, 20.0, 0.0, &r),
119c119
<   TEST_SF(s, gsl_sf_mathieu_ce, (5, 25.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (5, 25.0, 0.0, &r),
121c121
<   TEST_SF(s, gsl_sf_mathieu_se, (5, 0.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (5, 0.0, M_PI_2, &r),
123c123
<   TEST_SF(s, gsl_sf_mathieu_se, (5, 5.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (5, 5.0, M_PI_2, &r),
125c125
<   TEST_SF(s, gsl_sf_mathieu_se, (5, 10.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (5, 10.0, M_PI_2, &r),
127c127
<   TEST_SF(s, gsl_sf_mathieu_se, (5, 15.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (5, 15.0, M_PI_2, &r),
129c129
<   TEST_SF(s, gsl_sf_mathieu_se, (5, 20.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (5, 20.0, M_PI_2, &r),
131c131
<   TEST_SF(s, gsl_sf_mathieu_se, (5, 25.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (5, 25.0, M_PI_2, &r),
133c133
<   TEST_SF(s, gsl_sf_mathieu_ce, (10, 0.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (10, 0.0, 0.0, &r),
135c135
<   TEST_SF(s, gsl_sf_mathieu_ce, (10, 0.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (10, 0.0, M_PI_2, &r),
137c137
<   TEST_SF(s, gsl_sf_mathieu_ce, (10, 5.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (10, 5.0, 0.0, &r),
139c139
<   TEST_SF(s, gsl_sf_mathieu_ce, (10, 5.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (10, 5.0, M_PI_2, &r),
141c141
<   TEST_SF(s, gsl_sf_mathieu_ce, (10, 10.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (10, 10.0, 0.0, &r),
143c143
<   TEST_SF(s, gsl_sf_mathieu_ce, (10, 10.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (10, 10.0, M_PI_2, &r),
145c145
<   TEST_SF(s, gsl_sf_mathieu_ce, (10, 15.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (10, 15.0, 0.0, &r),
147c147
<   TEST_SF(s, gsl_sf_mathieu_ce, (10, 15.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (10, 15.0, M_PI_2, &r),
149c149
<   TEST_SF(s, gsl_sf_mathieu_ce, (10, 20.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (10, 20.0, 0.0, &r),
151c151
<   TEST_SF(s, gsl_sf_mathieu_ce, (10, 20.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (10, 20.0, M_PI_2, &r),
153c153
<   TEST_SF(s, gsl_sf_mathieu_ce, (10, 25.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (10, 25.0, 0.0, &r),
155c155
<   TEST_SF(s, gsl_sf_mathieu_ce, (10, 25.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (10, 25.0, M_PI_2, &r),
157c157
<   TEST_SF(s, gsl_sf_mathieu_ce, (15, 0.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (15, 0.0, 0.0, &r),
159c159
<   TEST_SF(s, gsl_sf_mathieu_ce, (15, 5.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (15, 5.0, 0.0, &r),
161c161
<   TEST_SF(s, gsl_sf_mathieu_ce, (15, 10.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (15, 10.0, 0.0, &r),
163c163
<   TEST_SF(s, gsl_sf_mathieu_ce, (15, 15.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (15, 15.0, 0.0, &r),
165c165
<   TEST_SF(s, gsl_sf_mathieu_ce, (15, 20.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (15, 20.0, 0.0, &r),
167c167
<   TEST_SF(s, gsl_sf_mathieu_ce, (15, 25.0, 0.0, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_ce_e, (15, 25.0, 0.0, &r),
169c169
<   TEST_SF(s, gsl_sf_mathieu_se, (15, 0.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (15, 0.0, M_PI_2, &r),
171c171
<   TEST_SF(s, gsl_sf_mathieu_se, (15, 5.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (15, 5.0, M_PI_2, &r),
173c173
<   TEST_SF(s, gsl_sf_mathieu_se, (15, 10.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (15, 10.0, M_PI_2, &r),
175c175
<   TEST_SF(s, gsl_sf_mathieu_se, (15, 15.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (15, 15.0, M_PI_2, &r),
177c177
<   TEST_SF(s, gsl_sf_mathieu_se, (15, 20.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (15, 20.0, M_PI_2, &r),
179c179
<   TEST_SF(s, gsl_sf_mathieu_se, (15, 25.0, M_PI_2, &r),
---
>   TEST_SF(s, gsl_sf_mathieu_se_e, (15, 25.0, M_PI_2, &r),

             reply	other threads:[~2013-08-31 18:11 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-31 18:11 Brian Gladman [this message]
2013-09-09 17:50 ` Patrick Alken
2013-09-09 19:04   ` Brian Gladman
2013-09-09 19:25     ` Brian Gladman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=522231C2.1060908@gladman.plus.com \
    --to=brg@gladman.plus.com \
    --cc=gsl-discuss@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).