40 if(
SIF_TEST) printf(
"sifWeight(*sif, %g)\n", halflife);
42 for(i=0; i<data->
frameNr; i++) {
44 f=data->
x2[i]-data->
x1[i];
if(f<=0.0) f=1.0;
48 d=exp( ((data->
x1[i]+data->
x2[i])/2.0)*0.693147/halflife );
82 if(
SIF_TEST) printf(
"sifWeightByFrames(*sif, %g)\n", halflife);
84 for(i=0; i<data->
frameNr; i++) {
85 f=data->
x2[i]-data->
x1[i];
if(f<=0.0) f=1.0;
89 d=exp( -((data->
x1[i]+data->
x2[i])/2.0)*0.693147/halflife );
109 if(
SIF_TEST) printf(
"sifWeightNorm(*sif)\n");
137 if(
SIF_TEST) printf(
"sifModerateTrues(*sif, %g)\n", limit);
139 if(sif==NULL || sif->
frameNr<2)
return;
140 if(limit<=1.0)
return;
144 for(w=f=sif->
trues[0], fi=1; fi<sif->frameNr; fi++) {
149 for(w/=limit, fi=0; fi<sif->
frameNr; fi++)
152 for(fi=0; fi<sif->
frameNr; fi++)
173 if(
SIF_TEST) printf(
"sifModerateWeights(*sif, %g)\n", limit);
175 if(sif==NULL || sif->
frameNr<2)
return;
176 if(limit<=1.0)
return;
181 for(fi=0; fi<sif->
frameNr; fi++) {
182 if(isnan(sif->
weights[fi]))
continue;
184 if(isnan(w)) w=sif->
weights[fi];
185 if(isnan(f)) f=sif->
weights[fi];
189 if(isnan(w) || isnan(f))
return;
192 for(w/=limit, fi=0; fi<sif->
frameNr; fi++)
213 if(sif==NULL || sif->
frameNr<1)
return 0;
216 if(sif->
prompts[0]>0.00000001) p=1;
217 if(sif->
randoms[0]>0.00000001) r=2;
221 for(fi=1; fi<sif->
frameNr; fi++) {
Header file for libtpcimgio.
void sifModerateTrues(SIF *sif, double limit)
void sifModerateWeights(SIF *sif, double limit)
void sifWeightByFrames(SIF *data, double halflife)
Calculate weights for frames in SIF data based on frame lengths. Weights are normalized to have an av...
int sifExistentCounts(SIF *sif)
void sifWeight(SIF *data, double halflife)
Calculate weights for frames in SIF data based on true counts. Weights are normalized to have an aver...
void sifWeightNorm(SIF *d)