TPCCLIB
Loading...
Searching...
No Matches
mrl.c File Reference

Calculation of maximum run length. More...

#include "libtpcmodext.h"

Go to the source code of this file.

Functions

int mrl_between_tacs (double *y1, double *y2, int n)

Detailed Description

Calculation of maximum run length.

Author
Vesa Oikonen

Definition in file mrl.c.

Function Documentation

◆ mrl_between_tacs()

int mrl_between_tacs ( double * y1,
double * y2,
int n )

Return the maximum run length between given n length arrays of data

Parameters
y1Array of data1; may contain NaNs
y2Array of data2; may contain NaNs
nNr of samples in array 1 and 2

Definition at line 13 of file mrl.c.

20 {
21 int i, mrl=0, rl=0;
22 char last_sign=0, sign;
23
24 if(n<1 || y1==NULL || y2==NULL) return(0);
25 for(i=0; i<n; i++) {
26 if(isnan(y1[i]) || isnan(y2[i])) continue;
27 if(y1[i]>y2[i]) sign=1; else if(y1[i]<y2[i]) sign=-1; else sign=0;
28 if(sign!=last_sign) {
29 rl=0; last_sign=sign;
30 } else {
31 if(sign!=0) {rl++; if(rl>mrl) mrl=rl;}
32 }
33 }
34 return(mrl);
35}