1 /* evaluate a function discarding the status value in a modifiable way */
2 
3 #define EVAL_RESULT(fn) \
4    gsl_sf_result result; \
5    int status = fn; \
6    if (status != GSL_SUCCESS) { \
7      GSL_ERROR_VAL(#fn, status, result.val); \
8    } ; \
9    return result.val;
10 
11 #define EVAL_DOUBLE(fn) \
12    int status = fn; \
13    if (status != GSL_SUCCESS) { \
14      GSL_ERROR_VAL(#fn, status, result); \
15    } ; \
16    return result;
17 
18