static double *INPUT; /* dyanmic array, on main's stack */
static double PREP[NPREP];
-static void printcore(const double *X) {
+#define X(xi) gsl_vector_get(xg, (xi))
+
+static void printcore(gsl_vector *xg) {
int i, j;
DECLARE_F_G;
CALCULATE_F_G;
printf("[");
for (i=0; i<NP; i++)
for (j=0; j<3; j++)
- printf(" %25.18g,", POINT(i)[j]);
+ printf(" %25.18g,", POINT(i,j));
printf(" ]\n");
}
//#define DEBUG
-static double cb_Efunc(void *xp) {
- const double *X = xp;
+static double cb_f(const gsl_vector *xg, void *params) {
int P;
DECLARE_F_G;
CALCULATE_F_G;
cprint(' (PP) == 1 ? F :')
cprint(' (PP) == NP-2 ? G :')
cprint(' (PP) == NP-1 ? H :')
- cprint(' &X[3*((PP)-2)]')
+ cprint(' &X(3*((PP)-2))')
cprintraw(')')
- cprintraw('#define EFlq X[ NX_DIRECT + 0 ]')
- cprintraw('#define HGlq X[ NX_DIRECT + 1 ]')
+ cprintraw('#define EFlq X( NX_DIRECT + 0 )')
+ cprintraw('#define HGlq X( NX_DIRECT + 1 )')
cprintraw('#define NX ( NX_DIRECT + 2 )')
for ai in range(0, len(abcd)):