chiark / gitweb /
simplex wip: use gsl_vector_get for X, for abandonment
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 8 Apr 2018 14:46:07 +0000 (15:46 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 8 Apr 2018 14:46:54 +0000 (15:46 +0100)
This is too painful because it breaks POINT, which everyone expects to
be able to inspect with []

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
findcurve.c
symbolic.py

index 055018f3bfb6abf87e5dba0aabbcf8dcb59dc906..1dd094108a4ff20544e9911748fbe88767848c4a 100644 (file)
@@ -26,14 +26,16 @@ static int NP;
 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");
 }
 
@@ -44,8 +46,7 @@ static void prepare(double X[] /* startpoint */) {
 
 //#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;
index 8680378ea06d906cbf58b4d230f09451e5ec281d..acc965700688a64c520db8c2287d2b7078e20ebb 100644 (file)
@@ -237,11 +237,11 @@ def gen_point_references():
   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)):