24#include <gsl/gsl_sort.h>
25#include <gsl/gsl_roots.h>
27#include <lal/UserInput.h>
28#include <lal/LALStdlib.h>
29#include <lal/SeqFactories.h>
72 XLALRegisterUvarMember( skydiff_allowed,
REAL8, 0, REQUIRED,
"Difference in sky location allowed (in radians) at fiducial frequency 200 Hz" );
85 return p->fvalue -
p->data_array[(
int )round( indexval ) * 9];
98 }
while ( ch != EOF );
99 double *allcands = NULL;
101 int *allcands_job = NULL;
106 fscanf( CANDS,
"%la %la %la %la %la %la %la %la %la %d %la %la %la %la %la %la %la %la %la %d", &( allcands[ii * 18] ), &( allcands[ii * 18 + 1] ), &( allcands[ii * 18 + 2] ), &( allcands[ii * 18 + 3] ), &( allcands[ii * 18 + 4] ), &( allcands[ii * 18 + 5] ), &( allcands[ii * 18 + 6] ), &( allcands[ii * 18 + 7] ), &( allcands[ii * 18 + 8] ), &( allcands_job[2 * ii] ), &( allcands[ii * 18 + 9] ), &( allcands[ii * 18 + 10] ), &( allcands[ii * 18 + 11] ), &( allcands[ii * 18 + 12] ), &( allcands[ii * 18 + 13] ), &( allcands[ii * 18 + 14] ), &( allcands[ii * 18 + 15] ), &( allcands[ii * 18 + 16] ), &( allcands[ii * 18 + 17] ), &( allcands_job[ii * 2 + 1] ) );
109 ( *output ) = allcands;
110 ( *output_job ) = allcands_job;
111 ( *output_numCoincident ) =
count;
116 FILE *IFOCANDS = NULL;
119 INT4 ch, ifocount = 0;
121 ch = fgetc( IFOCANDS );
125 }
while ( ch != EOF );
126 double *allIFOcands = NULL;
128 int *allIFOcands_job = NULL;
132 for (
INT4 ii = 0; ii < ifocount; ii++ ) {
133 fscanf( IFOCANDS,
"%la %la %la %la %la %la %la %la %la %d", &( allIFOcands[ii * 9] ), &( allIFOcands[ii * 9 + 1] ), &( allIFOcands[ii * 9 + 2] ), &( allIFOcands[ii * 9 + 3] ), &( allIFOcands[ii * 9 + 4] ), &( allIFOcands[ii * 9 + 5] ), &( allIFOcands[ii * 9 + 6] ), &( allIFOcands[ii * 9 + 7] ), &( allIFOcands[ii * 9 + 8] ), &( allIFOcands_job[ii] ) );
137 size_t *sorted_index = NULL;
139 double *allIFOcands_sorted = NULL;
141 int *allIFOcands_job_sorted = NULL;
143 gsl_sort_index( sorted_index, allIFOcands, 9, ifocount );
144 for (
INT4 ii = 0; ii < ifocount; ii++ ) {
145 memcpy( &( allIFOcands_sorted[ii * 9] ), &( allIFOcands[sorted_index[ii] * 9] ),
sizeof(
double ) * 9 );
146 allIFOcands_job_sorted[ii] = allIFOcands_job[sorted_index[ii]];
151 ( *output ) = allIFOcands_sorted;
152 ( *output_job ) = allIFOcands_job_sorted;
153 ( *output_numOutliers ) = ifocount;
161 gsl_set_error_handler_off();
166 double *allIFO1cands_sorted = NULL, *allIFO2cands_sorted = NULL;
167 int *allIFO1cands_job_sorted = NULL, *allIFO2cands_job_sorted = NULL;
168 int ifo1count = 0, ifo2count = 0;
174 XLAL_CHECK( ( CANDS = fopen( uvar.outfile1,
"w" ) ) != NULL,
XLAL_EIO,
"Can't fopen %s", uvar.outfile1 );
177 int status = GSL_CONTINUE;
179 double x_lo = 0.0, x_hi = ( double )( ifo2count - 1 );
180 double foundIndex = -1.0;
183 const gsl_root_fsolver_type *
T = gsl_root_fsolver_brent;
184 gsl_root_fsolver *
s = NULL;
187 double tobs = uvar.Tobs;
188 double fdiff_allowed = uvar.fdiff_allowed;
189 double dfdiff_allowed = uvar.dfdiff_allowed;
190 double skydiff_allowed = uvar.skydiff_allowed * 200.0;
191 double periodTcohFactor = 2.7 * ( uvar.Tcoh / 1800.0 ) + 1.8;
192 int numpassingf = 0, numpassingdf = 0, numpassingP = 0, numpassingskyloc = 0;
194 for ( ii = 0; ii < ifo1count; ii++ ) {
197 if ( allIFO1cands_sorted[ii * 9] >= allIFO2cands_sorted[0] && allIFO1cands_sorted[ii * 9] <= allIFO2cands_sorted[( ifo2count - 1 ) * 9] ) {
198 if ( foundIndex < 0.0 ||
status != GSL_SUCCESS || (
status == GSL_SUCCESS && fabs( allIFO1cands_sorted[ii * 9] - allIFO2cands_sorted[(
int )round( gsl_root_fsolver_root(
s ) ) * 9] ) > fdiff_allowed ) ) {
206 status = gsl_root_fsolver_iterate(
s );
208 foundIndex = gsl_root_fsolver_root(
s );
209 status = gsl_root_test_residual(
f_diff( foundIndex, &
params ), 1.05 * fdiff_allowed );
211 }
while (
status == GSL_CONTINUE && iter < max_iter );
215 if (
status == GSL_SUCCESS ) {
216 jj = (
int )round( foundIndex );
219 while ( jj > 0 && ( allIFO1cands_sorted[ii * 9] - allIFO2cands_sorted[jj * 9] ) < 1.05 * fdiff_allowed ) {
227 for ( ; jj < ifo2count; jj++ ) {
229 if ( allIFO2cands_sorted[jj * 9] - allIFO1cands_sorted[ii * 9] > 1.05 * fdiff_allowed ) {
234 if ( fabs( allIFO1cands_sorted[ii * 9] - allIFO2cands_sorted[jj * 9] ) <= fdiff_allowed ) {
237 if ( fabs( allIFO1cands_sorted[ii * 9 + 2] - allIFO2cands_sorted[jj * 9 + 2] ) <= dfdiff_allowed ) {
240 double Pdiff_allowed = allIFO1cands_sorted[ii * 9 + 1] * allIFO1cands_sorted[ii * 9 + 1] * sqrt( 3.6e-3 / allIFO1cands_sorted[ii * 9 + 2] ) / ( periodTcohFactor * tobs );
241 double Pdiff_allowed_2 = allIFO2cands_sorted[jj * 9 + 1] * allIFO2cands_sorted[jj * 9 + 1] * sqrt( 3.6e-3 / allIFO2cands_sorted[jj * 9 + 2] ) / ( periodTcohFactor * tobs );
242 int foundmatch = 0, passedtestP = 0;
243 for (
int kk = 1; kk <= 7; kk++ ) {
244 double P1factor = 0.0;
247 }
else if ( kk < 5 ) {
250 P1factor = ( double )( kk - 3 );
253 for (
int ll = 1; ll <= 7; ll++ ) {
254 double P2factor = 0.0;
257 }
else if ( ll < 5 ) {
260 P2factor = ( double )( ll - 3 );
263 if ( fabs( P1factor * allIFO1cands_sorted[ii * 9 + 1] - P2factor * allIFO2cands_sorted[jj * 9 + 1] ) <= Pdiff_allowed * ( P1factor * P1factor ) || fabs( P1factor * allIFO1cands_sorted[ii * 9 + 1] - P2factor * allIFO2cands_sorted[jj * 9 + 1] ) <= Pdiff_allowed_2 * ( P2factor * P2factor ) ) {
264 if ( !passedtestP ) {
269 double absd1mPo2 = fabs( allIFO1cands_sorted[ii * 9 + 4] - M_PI_2 );
270 double absd2mPo2 = fabs( allIFO2cands_sorted[jj * 9 + 4] - M_PI_2 );
271 double dist = acos( sin( absd1mPo2 ) * sin( absd2mPo2 ) * cos( allIFO1cands_sorted[ii * 9 + 3] - allIFO2cands_sorted[jj * 9 + 3] ) + cos( absd1mPo2 ) * cos( absd2mPo2 ) );
273 if (
dist <= 2.0 * skydiff_allowed / ( allIFO1cands_sorted[ii * 9] + allIFO2cands_sorted[jj * 9] ) ) {
276 fprintf( CANDS,
"%f %f %f %f %f %f %g %f %g %d %f %f %f %f %f %f %g %f %g %d\n", allIFO1cands_sorted[ii * 9], allIFO1cands_sorted[ii * 9 + 1], allIFO1cands_sorted[ii * 9 + 2], allIFO1cands_sorted[ii * 9 + 3], allIFO1cands_sorted[ii * 9 + 4], allIFO1cands_sorted[ii * 9 + 5], allIFO1cands_sorted[ii * 9 + 6], allIFO1cands_sorted[ii * 9 + 7], allIFO1cands_sorted[ii * 9 + 8], allIFO1cands_job_sorted[ii], allIFO2cands_sorted[jj * 9], allIFO2cands_sorted[jj * 9 + 1], allIFO2cands_sorted[jj * 9 + 2], allIFO2cands_sorted[jj * 9 + 3], allIFO2cands_sorted[jj * 9 + 4], allIFO2cands_sorted[jj * 9 + 5], allIFO2cands_sorted[jj * 9 + 6], allIFO2cands_sorted[jj * 9 + 7], allIFO2cands_sorted[jj * 9 + 8], allIFO2cands_job_sorted[jj] );
291 }
else if ( ( allIFO2cands_sorted[0] - allIFO1cands_sorted[ii * 9] ) <= fdiff_allowed && allIFO1cands_sorted[ii * 9] <= allIFO2cands_sorted[0] ) {
293 for ( jj = 0; jj < ifo2count; jj++ ) {
294 if ( allIFO2cands_sorted[jj * 9] - allIFO1cands_sorted[ii * 9] > 1.05 * fdiff_allowed ) {
298 if ( fabs( allIFO1cands_sorted[ii * 9] - allIFO2cands_sorted[jj * 9] ) <= fdiff_allowed ) {
300 if ( fabs( allIFO1cands_sorted[ii * 9 + 2] - allIFO2cands_sorted[jj * 9 + 2] ) <= dfdiff_allowed ) {
302 double Pdiff_allowed = allIFO1cands_sorted[ii * 9 + 1] * allIFO1cands_sorted[ii * 9 + 1] * sqrt( 3.6e-3 / allIFO1cands_sorted[ii * 9 + 2] ) / ( periodTcohFactor * tobs );
303 double Pdiff_allowed_2 = allIFO2cands_sorted[jj * 9 + 1] * allIFO2cands_sorted[jj * 9 + 1] * sqrt( 3.6e-3 / allIFO2cands_sorted[jj * 9 + 2] ) / ( periodTcohFactor * tobs );
304 int foundmatch = 0, passedtestP = 0;
305 for (
int kk = 1; kk <= 7; kk++ ) {
306 double P1factor = 0.0;
309 }
else if ( kk < 5 ) {
312 P1factor = ( double )( kk - 3 );
315 for (
int ll = 1; ll <= 7; ll++ ) {
316 double P2factor = 0.0;
319 }
else if ( ll < 5 ) {
322 P2factor = ( double )( ll - 3 );
325 if ( fabs( P1factor * allIFO1cands_sorted[ii * 9 + 1] - P2factor * allIFO2cands_sorted[jj * 9 + 1] ) <= Pdiff_allowed * ( P1factor * P1factor ) || fabs( P1factor * allIFO1cands_sorted[ii * 9 + 1] - P2factor * allIFO2cands_sorted[jj * 9 + 1] ) <= Pdiff_allowed_2 * ( P2factor * P2factor ) ) {
326 if ( !passedtestP ) {
331 double absd1mPo2 = fabs( allIFO1cands_sorted[ii * 9 + 4] - M_PI_2 );
332 double absd2mPo2 = fabs( allIFO2cands_sorted[jj * 9 + 4] - M_PI_2 );
333 double dist = acos( sin( absd1mPo2 ) * sin( absd2mPo2 ) * cos( allIFO1cands_sorted[ii * 9 + 3] - allIFO2cands_sorted[jj * 9 + 3] ) + cos( absd1mPo2 ) * cos( absd2mPo2 ) );
335 if (
dist <= 2.0 * skydiff_allowed / ( allIFO1cands_sorted[ii * 9] + allIFO2cands_sorted[jj * 9] ) ) {
338 fprintf( CANDS,
"%f %f %f %f %f %f %g %f %g %d %f %f %f %f %f %f %g %f %g %d\n", allIFO1cands_sorted[ii * 9], allIFO1cands_sorted[ii * 9 + 1], allIFO1cands_sorted[ii * 9 + 2], allIFO1cands_sorted[ii * 9 + 3], allIFO1cands_sorted[ii * 9 + 4], allIFO1cands_sorted[ii * 9 + 5], allIFO1cands_sorted[ii * 9 + 6], allIFO1cands_sorted[ii * 9 + 7], allIFO1cands_sorted[ii * 9 + 8], allIFO1cands_job_sorted[ii], allIFO2cands_sorted[jj * 9], allIFO2cands_sorted[jj * 9 + 1], allIFO2cands_sorted[jj * 9 + 2], allIFO2cands_sorted[jj * 9 + 3], allIFO2cands_sorted[jj * 9 + 4], allIFO2cands_sorted[jj * 9 + 5], allIFO2cands_sorted[jj * 9 + 6], allIFO2cands_sorted[jj * 9 + 7], allIFO2cands_sorted[jj * 9 + 8], allIFO2cands_job_sorted[jj] );
352 }
else if ( ( allIFO1cands_sorted[ii * 9] - allIFO2cands_sorted[( ifo2count - 1 ) * 9] ) <= fdiff_allowed && allIFO1cands_sorted[ii * 9] >= allIFO2cands_sorted[( ifo2count - 1 ) * 9] ) {
354 while ( jj > 0 && ( allIFO1cands_sorted[ii * 9] - allIFO2cands_sorted[jj * 9] ) < 1.05 * fdiff_allowed ) {
358 for ( ; jj < ifo2count; jj++ ) {
359 if ( fabs( allIFO1cands_sorted[ii * 9] - allIFO2cands_sorted[jj * 9] ) <= fdiff_allowed ) {
361 if ( fabs( allIFO1cands_sorted[ii * 9 + 2] - allIFO2cands_sorted[jj * 9 + 2] ) <= dfdiff_allowed ) {
363 double Pdiff_allowed = allIFO1cands_sorted[ii * 9 + 1] * allIFO1cands_sorted[ii * 9 + 1] * sqrt( 3.6e-3 / allIFO1cands_sorted[ii * 9 + 2] ) / ( periodTcohFactor * tobs );
364 double Pdiff_allowed_2 = allIFO2cands_sorted[jj * 9 + 1] * allIFO2cands_sorted[jj * 9 + 1] * sqrt( 3.6e-3 / allIFO2cands_sorted[jj * 9 + 2] ) / ( periodTcohFactor * tobs );
365 int foundmatch = 0, passedtestP = 0;
366 for (
int kk = 1; kk <= 7; kk++ ) {
367 double P1factor = 0.0;
370 }
else if ( kk < 5 ) {
373 P1factor = ( double )( kk - 3 );
376 for (
int ll = 1; ll <= 7; ll++ ) {
377 double P2factor = 0.0;
380 }
else if ( ll < 5 ) {
383 P2factor = ( double )( ll - 3 );
386 if ( fabs( P1factor * allIFO1cands_sorted[ii * 9 + 1] - P2factor * allIFO2cands_sorted[jj * 9 + 1] ) <= Pdiff_allowed * ( P1factor * P1factor ) || fabs( P1factor * allIFO1cands_sorted[ii * 9 + 1] - P2factor * allIFO2cands_sorted[jj * 9 + 1] ) <= Pdiff_allowed_2 * ( P2factor * P2factor ) ) {
387 if ( !passedtestP ) {
392 double absd1mPo2 = fabs( allIFO1cands_sorted[ii * 9 + 4] - M_PI_2 );
393 double absd2mPo2 = fabs( allIFO2cands_sorted[jj * 9 + 4] - M_PI_2 );
394 double dist = acos( sin( absd1mPo2 ) * sin( absd2mPo2 ) * cos( allIFO1cands_sorted[ii * 9 + 3] - allIFO2cands_sorted[jj * 9 + 3] ) + cos( absd1mPo2 ) * cos( absd2mPo2 ) );
396 if (
dist <= 2.0 * skydiff_allowed / ( allIFO1cands_sorted[ii * 9] + allIFO2cands_sorted[jj * 9] ) ) {
399 fprintf( CANDS,
"%f %f %f %f %f %f %g %f %g %d %f %f %f %f %f %f %g %f %g %d\n", allIFO1cands_sorted[ii * 9], allIFO1cands_sorted[ii * 9 + 1], allIFO1cands_sorted[ii * 9 + 2], allIFO1cands_sorted[ii * 9 + 3], allIFO1cands_sorted[ii * 9 + 4], allIFO1cands_sorted[ii * 9 + 5], allIFO1cands_sorted[ii * 9 + 6], allIFO1cands_sorted[ii * 9 + 7], allIFO1cands_sorted[ii * 9 + 8], allIFO1cands_job_sorted[ii], allIFO2cands_sorted[jj * 9], allIFO2cands_sorted[jj * 9 + 1], allIFO2cands_sorted[jj * 9 + 2], allIFO2cands_sorted[jj * 9 + 3], allIFO2cands_sorted[jj * 9 + 4], allIFO2cands_sorted[jj * 9 + 5], allIFO2cands_sorted[jj * 9 + 6], allIFO2cands_sorted[jj * 9 + 7], allIFO2cands_sorted[jj * 9 + 8], allIFO2cands_job_sorted[jj] );
420 gsl_root_fsolver_free(
s );
423 XLALFree( allIFO1cands_job_sorted );
424 XLALFree( allIFO2cands_job_sorted );
426 fprintf( stderr,
"Passed f = %d, passed df = %d, passed P = %d, passed sky loc %d\n", numpassingf, numpassingdf, numpassingP, numpassingskyloc );
431 double *allcands = NULL;
432 int *allcands_job = NULL;
442 FILE *NEWCANDS = NULL;
443 XLAL_CHECK( ( NEWCANDS = fopen( uvar.outfile2,
"w" ) ) != NULL,
XLAL_EIO,
"Couldn't fopen %s\n", uvar.outfile2 );
445 for ( ii = 0; ii <
count; ii++ ) {
446 if ( !usedvalue->
data[ii] ) {
448 double bestcandprob = allcands[ii * 18 + 16];
449 for ( jj = 0; jj <
count; jj++ ) {
450 if ( usedvalue->
data[jj] || jj == ii ) {
453 if ( allcands[jj * 18] == allcands[bestcand * 18] && allcands[jj * 18 + 1] == allcands[bestcand * 18 + 1] && allcands[jj * 18 + 2] == allcands[bestcand * 18 + 2] && allcands[jj * 18 + 3] == allcands[bestcand * 18 + 3] && allcands[jj * 18 + 4] == allcands[bestcand * 18 + 4] ) {
454 if ( allcands[jj * 18 + 16] < bestcandprob ) {
455 usedvalue->
data[bestcand] = 1;
456 bestcandprob = allcands[jj * 18 + 16];
459 usedvalue->
data[jj] = 1;
463 fprintf( NEWCANDS,
"%f %f %f %f %f %f %g %f %g %d %f %f %f %f %f %f %g %f %g %d\n", allcands[bestcand * 18], allcands[bestcand * 18 + 1], allcands[bestcand * 18 + 2], allcands[bestcand * 18 + 3], allcands[bestcand * 18 + 4], allcands[bestcand * 18 + 5], allcands[bestcand * 18 + 6], allcands[bestcand * 18 + 7], allcands[bestcand * 18 + 8], allcands_job[bestcand * 2], allcands[bestcand * 18 + 9], allcands[bestcand * 18 + 10], allcands[bestcand * 18 + 11], allcands[bestcand * 18 + 12], allcands[bestcand * 18 + 13], allcands[bestcand * 18 + 14], allcands[bestcand * 18 + 15], allcands[bestcand * 18 + 16], allcands[bestcand * 18 + 17], allcands_job[bestcand * 2 + 1] );
464 usedvalue->
data[bestcand] = 1;
483 XLAL_CHECK( ( NEWCANDS = fopen( uvar.finalOutfile,
"w" ) ) != NULL,
XLAL_EIO,
"Couldn't fopen %s\n", uvar.finalOutfile );
485 for ( ii = 0; ii <
count; ii++ ) {
486 if ( !usedvalue->
data[ii] ) {
488 double bestcandprob = allcands[ii * 18 + 7];
489 for ( jj = 0; jj <
count; jj++ ) {
490 if ( usedvalue->
data[jj] || jj == ii ) {
493 if ( allcands[jj * 18 + 9] == allcands[bestcand * 18 + 9] && allcands[jj * 18 + 10] == allcands[bestcand * 18 + 10] && allcands[jj * 18 + 11] == allcands[bestcand * 18 + 11] && allcands[jj * 18 + 12] == allcands[bestcand * 18 + 12] && allcands[jj * 18 + 13] == allcands[bestcand * 18 + 13] ) {
494 if ( allcands[jj * 18 + 7] < bestcandprob ) {
495 usedvalue->
data[bestcand] = 1;
496 bestcandprob = allcands[jj * 18 + 7];
499 usedvalue->
data[jj] = 1;
503 fprintf( NEWCANDS,
"%f %f %f %f %f %f %g %f %g %d %f %f %f %f %f %f %g %f %g %d\n", allcands[bestcand * 18], allcands[bestcand * 18 + 1], allcands[bestcand * 18 + 2], allcands[bestcand * 18 + 3], allcands[bestcand * 18 + 4], allcands[bestcand * 18 + 5], allcands[bestcand * 18 + 6], allcands[bestcand * 18 + 7], allcands[bestcand * 18 + 8], allcands_job[bestcand * 2], allcands[bestcand * 18 + 9], allcands[bestcand * 18 + 10], allcands[bestcand * 18 + 11], allcands[bestcand * 18 + 12], allcands[bestcand * 18 + 13], allcands[bestcand * 18 + 14], allcands[bestcand * 18 + 15], allcands[bestcand * 18 + 16], allcands[bestcand * 18 + 17], allcands_job[bestcand * 2 + 1] );
504 usedvalue->
data[bestcand] = 1;
522 XLAL_CHECK( ( NEWCANDS = fopen( uvar.outfile3,
"w" ) ) != NULL,
XLAL_EIO,
"Couldn't fopen %s\n", uvar.outfile3 );
524 for ( ii = 0; ii <
count; ii++ ) {
525 if ( !usedvalue->
data[ii] ) {
527 double bestcandprob = allcands[ii * 18 + 7];
528 for ( jj = 0; jj <
count; jj++ ) {
529 if ( usedvalue->
data[jj] || jj == ii ) {
532 if ( allcands[jj * 18 + 9] == allcands[bestcand * 18 + 9] && allcands[jj * 18 + 10] == allcands[bestcand * 18 + 10] && allcands[jj * 18 + 11] == allcands[bestcand * 18 + 11] && allcands[jj * 18 + 12] == allcands[bestcand * 18 + 12] && allcands[jj * 18 + 13] == allcands[bestcand * 18 + 13] ) {
533 if ( allcands[jj * 18 + 7] < bestcandprob ) {
534 usedvalue->
data[bestcand] = 1;
535 bestcandprob = allcands[jj * 18 + 7];
538 usedvalue->
data[jj] = 1;
542 fprintf( NEWCANDS,
"%f %f %f %f %f %f %g %f %g %d %f %f %f %f %f %f %g %f %g %d\n", allcands[bestcand * 18], allcands[bestcand * 18 + 1], allcands[bestcand * 18 + 2], allcands[bestcand * 18 + 3], allcands[bestcand * 18 + 4], allcands[bestcand * 18 + 5], allcands[bestcand * 18 + 6], allcands[bestcand * 18 + 7], allcands[bestcand * 18 + 8], allcands_job[bestcand * 2], allcands[bestcand * 18 + 9], allcands[bestcand * 18 + 10], allcands[bestcand * 18 + 11], allcands[bestcand * 18 + 12], allcands[bestcand * 18 + 13], allcands[bestcand * 18 + 14], allcands[bestcand * 18 + 15], allcands[bestcand * 18 + 16], allcands[bestcand * 18 + 17], allcands_job[bestcand * 2 + 1] );
543 usedvalue->
data[bestcand] = 1;
561 XLAL_CHECK( ( NEWCANDS = fopen( uvar.finalOutfile,
"a" ) ) != NULL,
XLAL_EIO,
"Couldn't fopen %s\n", uvar.finalOutfile );
563 for ( ii = 0; ii <
count; ii++ ) {
564 if ( !usedvalue->
data[ii] ) {
566 double bestcandprob = allcands[ii * 18 + 16];
567 for ( jj = 0; jj <
count; jj++ ) {
568 if ( usedvalue->
data[jj] || jj == ii ) {
571 if ( allcands[jj * 18] == allcands[bestcand * 18] && allcands[jj * 18 + 1] == allcands[bestcand * 18 + 1] && allcands[jj * 18 + 2] == allcands[bestcand * 18 + 2] && allcands[jj * 18 + 3] == allcands[bestcand * 18 + 3] && allcands[jj * 18 + 4] == allcands[bestcand * 18 + 4] ) {
572 if ( allcands[jj * 18 + 16] < bestcandprob ) {
573 usedvalue->
data[bestcand] = 1;
574 bestcandprob = allcands[jj * 18 + 16];
577 usedvalue->
data[jj] = 1;
581 fprintf( NEWCANDS,
"%f %f %f %f %f %f %g %f %g %d %f %f %f %f %f %f %g %f %g %d\n", allcands[bestcand * 18], allcands[bestcand * 18 + 1], allcands[bestcand * 18 + 2], allcands[bestcand * 18 + 3], allcands[bestcand * 18 + 4], allcands[bestcand * 18 + 5], allcands[bestcand * 18 + 6], allcands[bestcand * 18 + 7], allcands[bestcand * 18 + 8], allcands_job[bestcand * 2], allcands[bestcand * 18 + 9], allcands[bestcand * 18 + 10], allcands[bestcand * 18 + 11], allcands[bestcand * 18 + 12], allcands[bestcand * 18 + 13], allcands[bestcand * 18 + 14], allcands[bestcand * 18 + 15], allcands[bestcand * 18 + 16], allcands[bestcand * 18 + 17], allcands_job[bestcand * 2 + 1] );
582 usedvalue->
data[bestcand] = 1;
const LALVCSInfoList lalPulsarVCSInfoList
NULL-terminated list of VCS and build information for LALPulsar and its dependencies
REAL8 f_diff(double indexval, void *params)
INT4 readInCoincidentOutliers(double **output, int **output_job, int *output_numOutliers, const char *infilename)
INT4 readInIFOoutliersAndSort(double **output, int **output_job, int *output_numCoincident, const char *infilename)
INT4 InitUserVars(UserVariables_t *uvar, int argc, char *argv[])
INT4 main(int argc, char *argv[])
#define XLAL_INIT_DECL(var,...)
void * XLALMalloc(size_t n)
INT4Vector * XLALCreateINT4Vector(UINT4 length)
void XLALDestroyINT4Vector(INT4Vector *vector)
#define XLAL_CHECK(assertion,...)
p
RUN ANALYSIS SCRIPT ###.