/* $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
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 */
/* 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];
/* 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(;;) {
}
/****************** 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)
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]) */
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 */
/* 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); */
#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++;
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;
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 */
*/
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) */
*/
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;*/