]> henry.ined.fr Git - .git/commitdiff
Summary: trying clang on Linux
authorN. Brouard <brouard@ined.fr>
Tue, 2 Jul 2024 09:42:10 +0000 (09:42 +0000)
committerN. Brouard <brouard@ined.fr>
Tue, 2 Jul 2024 09:42:10 +0000 (09:42 +0000)
src/imach.c

index 51871a18a9c1e884898bfb259d41d5d2a8cf3564..d2a3d398a0069998d0c7797fc9feb6570e26752c 100644 (file)
@@ -1,6 +1,9 @@
 /* $Id$
   $State$
   $Log$
+  Revision 1.365  2024/06/28 13:53:38  brouard
+  * imach.c (Module): fixing some bugs in gnuplot and quantitative variables, but not completely solved
+
   Revision 1.364  2024/06/28 12:27:05  brouard
   * imach.c (Module): fixing some bugs in gnuplot and quantitative variables, but not completely solved
 
@@ -1480,7 +1483,8 @@ int countcallfunc=0;  /* Count the number of calls to func */
 int selected(int kvar); /* Is covariate kvar selected for printing results */
 
 double jmean=1; /* Mean space between 2 waves */
-double **matprod2(); /* test */
+double **matprod2(double **out, double **in,int nrl, int nrh, int ncl, int nch, int ncolol, int ncoloh, double **b); /* test */
+/* double **matprod2();  *//* test */
 double **oldm, **newm, **savm; /* Working pointers to matrices */
 double **oldms, **newms, **savms; /* Fixed working pointers to matrices */
 double  **ddnewms, **ddoldms, **ddsavms; /* for freeing later */
@@ -1527,14 +1531,16 @@ char optionfilegnuplot[FILENAMELENGTH], optionfilehtm[FILENAMELENGTH], optionfil
 /* struct timeval start_time, end_time, curr_time, last_time, forecast_time; */
 /* struct timezone tzp; */
 /* extern int gettimeofday(); */
-struct tm tml, *gmtime(), *localtime();
 
-extern time_t time();
+/* extern time_t time(); */ /* Commented out for clang */
+/* struct tm tml, *gmtime(), *localtime(); */
+
 
 struct tm start_time, end_time, curr_time, last_time, forecast_time;
 time_t  rstart_time, rend_time, rcurr_time, rlast_time, rforecast_time; /* raw time */
 time_t   rlast_btime; /* raw time */
-struct tm tm;
+/* struct tm tm; */
+struct tm tm, tml;
 
 char strcurr[80], strfor[80];
 
@@ -1998,9 +2004,7 @@ int nboccstr(char *textin, char *chain)
   /*  in="+V7*V4+age*V2+age*V3+age*V4"  chain="age" */
   char *strloc;
   
-  int i,j=0;
-
-  i=0;
+  int j=0;
 
   strloc=textin; /* strloc points to "^+V7*V4+age+..." in textin */
   for(;;) {
@@ -2134,14 +2138,15 @@ int **imatrix(long nrl, long nrh, long ncl, long nch)
 } 
 
 /****************** free_imatrix *************************/
-void free_imatrix(m,nrl,nrh,ncl,nch)
-      int **m;
-      long nch,ncl,nrh,nrl; 
-     /* free an int matrix allocated by imatrix() */ 
-{ 
-  free((FREE_ARG) (m[nrl]+ncl-NR_END)); 
-  free((FREE_ARG) (m+nrl-NR_END)); 
-} 
+/* void free_imatrix(m,nrl,nrh,ncl,nch); */
+/*       int **m; */
+/*       long nch,ncl,nrh,nrl; */
+void free_imatrix(int **m,long nrl, long nrh, long ncl, long nch)
+     /* free an int matrix allocated by imatrix() */
+{
+  free((FREE_ARG) (m[nrl]+ncl-NR_END));
+  free((FREE_ARG) (m+nrl-NR_END));
+}
 
 /******************* matrix *******************************/
 double **matrix(long nrl, long nrh, long ncl, long nch)
@@ -2401,8 +2406,8 @@ values at the three points, fa, fb , and fc such that fa > fb and fb < fc.
   double ulim,u,r,q, dum;
   double fu; 
 
-  double scale=10.;
-  int iterscale=0;
+  /* double scale=10.; */
+  /* int iterscale=0; */
 
   *fa=(*func)(*ax); /*  xta[j]=pcom[j]+(*ax)*xicom[j]; fa=f(xta[j])*/
   *fb=(*func)(*bx); /*  xtb[j]=pcom[j]+(*bx)*xicom[j]; fb=f(xtb[j]) */
@@ -2792,7 +2797,8 @@ double *e; /* used in minfit, don't konw how to free memory and thus made global
 static int prin; /* added */
 static int n;
 static double *x;
-static double (*fun)();
+static double (*fun)(double *x); /* New for clang */
+/* static double (*fun)(); */
 /* static double (*fun)(double *x, int n); */
 
 /* these will be set by praxis to the global control parameters */
@@ -3017,7 +3023,7 @@ static void print()               /* print a line of traces */
 /* static void print2(int n, double *x, int prin, double fx, int nf, int nl) */ /* print a line of traces */
 static void print2() /* print a line of traces */
 {
-  int i; double fmin=0.;
+  int i; /* double fmin=0.; */
 
    /* printf("\n"); */
    /* printf("... chi square reduced to ... %20.10e\n", fx); */
@@ -3796,7 +3802,7 @@ next:
 #ifdef NR_SHIFT
           fx = (*fun)((x-1), n);
 #else
-          fx = (*fun)(x, n);
+          fx = (*fun)(x);
 #endif
           /* fx = (*func) ( (x-1) ); *//* This for func which is computed from x[1] and not from x[0] xm1=(x-1)*/
           nf++;
@@ -4590,8 +4596,10 @@ void powell(double p[], double **xi, int n, double ftol, int *iter, double *fret
     
     int i, ii,j,k, k1;
   double *min, *max, *meandiff, maxmax,sumnew=0.;
-  /* double **matprod2(); */ /* test */
-  double **out, cov[NCOVMAX+1], **pmij(); /* **pmmij is a global variable feeded with oldms etc */
+  double **matprod2(double **out, double **in,int nrl, int nrh, int ncl, int nch, int ncolol, int ncoloh, double **b); /* test */ /* for clang */
+/* double **matprod2(); */ /* test */
+  /* double **out, cov[NCOVMAX+1], **pmij(); */ /* **pmmij is a global variable feeded with oldms etc */
+  double **out, cov[NCOVMAX+1], **pmij(double **ps, double *cov, int ncovmodel, double *x, int nlstate); /* **pmmij is a global variable feeded with oldms etc */
   double **newm;
   double agefin, delaymax=200. ; /* 100 Max number of years to converge */
   int ncvloop=0;
@@ -4797,7 +4805,8 @@ void powell(double p[], double **xi, int n, double ftol, int *iter, double *fret
   int first=0;
   double *min, *max, *meandiff, maxmax,sumnew=0.;
   /* double **matprod2(); */ /* test */
-  double **out, cov[NCOVMAX+1], **bmij();
+  double **out, cov[NCOVMAX+1], **bmij(double **ps, double *cov, int ncovmodel, double *x, int nlstate,  double ***prevacurrent, int ij);
+  /* double **out, cov[NCOVMAX+1], **bmij(); */ /* Deprecated in clang */
   double **newm;
   double        **dnewm, **doldm, **dsavm;  /* for use */
   double        **oldm, **savm;  /* for use */
@@ -5062,7 +5071,8 @@ double **pmij(double **ps, double *cov, int ncovmodel, double *x, int nlstate )
    */
   int ii, j;
   
-  double  **pmij();
+  double  **pmij(double **ps, double *cov, int ncovmodel, double *x, int nlstate);
+  /* double  **pmij(); */ /* No more for clang */
   double sumnew=0.;
   double agefin;
   double k3=0.; /* constant of the w_x diagonal matrix (in order for B to sum to 1 even for death state) */
@@ -5457,7 +5467,8 @@ double ***hbxij(double ***po, int nhstepm, double age, int hstepm, double *x, do
   */
 
   int i, j, d, h, k1;
-  double **out, cov[NCOVMAX+1], **bmij();
+  double **out, cov[NCOVMAX+1], **bmij(double **ps, double *cov, int ncovmodel, double *x, int nlstate,  double ***prevacurrent, int ij);
+  /* double **out, cov[NCOVMAX+1], **bmij(); */ /* No more for clang */
   double **newm, ***newmm;
   double agexact;
   /*double agebegin, ageend;*/