24 int R=1, Nneg=0, Npos=0, NN;
25 double expect, var, Z, pvalue=0.0, a, b;
26 if(alpha<=0.0) alpha=5.0;
28 residuals(data1, data2, N, &R, &Nneg, &Npos);
33 if(NN<1) {
if(p!=NULL) *p=pvalue;
return -1;}
34 expect=(double)NN/(
double)N + 1.0;
37 a=(double)NN*(
double)(NN-N); b=(double)(N-1)*(double)N*(
double)N;
41 Z=((double)R-expect)/sqrt(var);
43 pvalue=
ndtr(Z);
if(p!=NULL) *p=pvalue;
45 if (pvalue<0.01*alpha)
return -1;
70 if(d1==NULL || d2==NULL || Nr<1 || Rnr==NULL || Nminus==NULL || Nplus==NULL)
return(1);
76 res=(
double*)malloc((Nr)*
sizeof(
double));
77 sign=(
int*)malloc((Nr)*
sizeof(
int));
78 if(res==NULL || sign==NULL)
return(2);
84 *Nminus=0; *Nplus=0; *Rnr=1;
88 *Nminus+=1; sign[i]=-1;
92 if(i>0)
if(sign[i]!=sign[i-1]) *Rnr+=1;
94 free(res); free(sign);
112 char last_sign=0, sign;
114 if(y1==NULL || y2==NULL)
return(0);
115 for(
int i=0; i<n; i++) {
116 if(isnan(y1[i]) || isnan(y2[i]))
continue;
117 if(y1[i]>y2[i]) sign=1;
else if(y1[i]<y2[i]) sign=-1;
else sign=0;
118 if(sign!=last_sign) {
119 rl=0; last_sign=sign;
121 if(sign!=0) {rl++;
if(rl>mrl) mrl=rl;}
Header file for libtpcmodel.
int residuals(double *d1, double *d2, int Nr, int *Rnr, int *Nminus, int *Nplus)
int runs_test(double *data1, double *data2, int N, double alpha, double *p)
int mrl_between_tacs(double y1[], double y2[], int n)