I don't fully understand the issue. In gsl_math.h, we have:

135 struct gsl_function_fdf_struct
136 {
137   double (* f) (double x, void * params);
138   double (* df) (double x, void * params);
139   void (* fdf) (double x, void * params, double * f, double * df);
140   void * params;
141 };
142
143 typedef struct gsl_function_fdf_struct gsl_function_fdf ;
144
145 #define GSL_FN_FDF_EVAL_F(FDF,x) (*((FDF)->f))(x,(FDF)->params)

Therefore there is an 'f' field of gsl_function_fdf which means the macro should work ok. There is no 'function' field so I don't see how your change will work. Also, this macro is used by several modules in the roots directory so it seems to be functioning properly

On 02/19/2015 07:06 PM, Edith Viau wrote:
Hi everyone : )

I think that a small bug was lost in versioning... Correct me if I am
wrong, and I am most sorry if this issue was already brought up to you - I
was unable to find previous mentions of this.

In the gsl_math.h file, line 145. We read :

#define GSL_FN_FDF_EVAL_F(FDF,x) (*((FDF)->*f)*)(x,(FDF)->params)


It should be :


#define GSL_FN_FDF_EVAL_F(FDF,x) (*((FDF)->*function*))(x,(FDF)->params)


When I make the change, I am able to use the macro as intended.  The change
is in bold.


Let me know if there is anything or if I should provide a program sample.


Have a great day/evening,


Edith


Reply via email to