5#include "tpcclibConfig.h"
27 if(tac==NULL || tac->
sampleNr<1)
return(0);
32 if(!isfinite(tac->
x1[fi])) nan_nr++;
33 if(!isfinite(tac->
x2[fi])) nan_nr++;
37 if(!isfinite(tac->
x[fi])) nan_nr++;
58 if(!isfinite(tac->
c[i].
y[fi])) nan_nr++;
61 for(ri=0; ri<tac->
tacNr; ri++)
63 if(!isfinite(tac->
c[ri].
y[fi])) nan_nr++;
96 if(!isfinite(tac->
x1[fi])) {nan_nr++;
continue;}
97 if(!isfinite(tac->
x2[fi])) {nan_nr++;
continue;}
99 if(!isfinite(tac->
x[fi])) {nan_nr++;
continue;}
103 if(!isfinite(tac->
c[i].
y[fi])) nan_nr++;
106 for(ri=0; ri<tac->
tacNr; ri++)
107 if(!isfinite(tac->
c[ri].
y[fi])) {nan_nr++;
break;}
129 double x1, x2, y1, y2, x, y;
132 if(tac->
isframe) x=0.5*(tac->
x1[fi]+tac->
x2[fi]);
else x=tac->
x[fi];
134 for(ri=0; ri<tac->
tacNr; ri++)
135 if(!isfinite(tac->
c[ri].
y[fi])) tac->
c[ri].
y[fi]=0.0;
141 if(tac->
isframe) x=0.5*(tac->
x1[fi]+tac->
x2[fi]);
else x=tac->
x[fi];
143 if(isfinite(tac->
c[ri].
y[fi])) {y1=tac->
c[ri].
y[fi]; x1=x;
continue;}
147 for(fj=fi+1; fj<tac->
sampleNr; fj++) {
148 if(!isfinite(tac->
c[ri].
y[fj]))
continue;
149 if(tac->
isframe) x2=0.5*(tac->
x1[fj]+tac->
x2[fj]);
else x2=tac->
x[fj];
154 if(!isfinite(x2))
return(3);
156 if(!isfinite(x1)) x1=y1=0.0;
158 if(x2==x1) y=0.5*(y1+y2);
else y=y2-(x2-x)*(y2-y1)/(x2-x1);
183 if(sn<1 || sn>tac->
sampleNr)
return(-1);
189 if(!isfinite(tac->
x1[fi]) || !isfinite(tac->
x2[fi]))
continue;
191 if(!isfinite(tac->
x[fi]))
continue;
195 if(!isfinite(tac->
c[i].
y[fi]))
continue;
197 for(ri=0; ri<tac->
tacNr; ri++)
if(!isfinite(tac->
c[ri].
y[fi]))
break;
198 if(ri!=tac->
tacNr)
continue;
201 if(n==sn)
return(fi);
int tacYNaNs(TAC *tac, const int i)
int tacNthSample(TAC *tac, const int sn, const int i)
int tacNotNaNs(TAC *tac, const int i)
Header file for library libtpcift.
Header file for library libtpctac.