extern "C" { \
extern void PREFIX##gssvx(superlu_options_t *, SuperMatrix *, int *, int *, int *, \
char *, FLOATTYPE *, FLOATTYPE *, SuperMatrix *, SuperMatrix *, \
void *, int, SuperMatrix *, SuperMatrix *, \
FLOATTYPE *, FLOATTYPE *, FLOATTYPE *, FLOATTYPE *, \
mem_usage_t *, SuperLUStat_t *, int *); \
} \
inline
float SuperLU_gssvx(superlu_options_t *
options, SuperMatrix *
A, \
int *perm_c, int *perm_r, int *etree, char *equed, \
FLOATTYPE *
R, FLOATTYPE *
C, SuperMatrix *
L, \
SuperMatrix *
U,
void *work,
int lwork, \
SuperMatrix *
B, SuperMatrix *
X, \
FLOATTYPE *recip_pivot_growth, \
FLOATTYPE *rcond, FLOATTYPE *ferr, FLOATTYPE *berr, \
SuperLUStat_t *
stats,
int *
info, KEYTYPE) { \
mem_usage_t mem_usage; \
PREFIX##gssvx(
options,
A, perm_c, perm_r, etree, equed,
R,
C,
L, \
U, work, lwork,
B,
X, recip_pivot_growth, rcond, \
return mem_usage.for_lu; \
}