Index: trunk/Ohana/src/relastro/src/high_speed_objects.c
===================================================================
--- trunk/Ohana/src/relastro/src/high_speed_objects.c	(revision 28218)
+++ trunk/Ohana/src/relastro/src/high_speed_objects.c	(revision 28219)
@@ -4,4 +4,5 @@
 # define NEXT_J { j++; continue; }
 
+// XXX these were used to spot-check specific objects
 # define REF_RA1 192.455781 
 # define REF_DEC1 2.563102 
@@ -15,8 +16,8 @@
   int *slowMoving, *groupA, *groupB, status, foundA, foundB, Nmatch, valid;
   double *X1, *Y1;
-  double dX, dY, dR, RADIUS2, radius, yJ;
+  double dX, dY, dR, RADIUS2, yJ;
   Coords tcoords;
 
-  int ycode, yNsec, zcode, zNsec, jcode, jNsec, USNO_R, USNO_N, Nsecfilt;
+  int zcode, zNsec, ycode, yNsec, jcode, jNsec, hcode, hNsec, kcode, kNsec, USNO_R, USNO_N, Nsecfilt;
 
   Nsecfilt = GetPhotcodeNsecfilt();
@@ -30,4 +31,10 @@
   jcode = GetPhotcodeCodebyName("J");
   jNsec = GetPhotcodeNsec(jcode);
+  
+  hcode = GetPhotcodeCodebyName("H");
+  hNsec = GetPhotcodeNsec(hcode);
+  
+  kcode = GetPhotcodeCodebyName("K");
+  kNsec = GetPhotcodeNsec(kcode);
   
   USNO_R = GetPhotcodeCodebyName("USNO_RED");
@@ -57,17 +64,20 @@
   Nslow = 0;
 
+  fprintf (stdout, "#      RA_A  DEC_A              RA_B  DEC_B      :     pmx     pmy      dR  :    z      dz       y      dy       J      dJ       H      dH       K      dK\n");
+  //................270.2346670  20.2471540  270.2170434  20.2717396 :  -59.11   88.78   106.66 :   0.000  0.000   19.582  0.112   16.041  0.110   15.388  0.098   14.858  0.001
+
   // mark (exclude) objects with both sets of target photcodes
   for (i = 0; i < catalog[0].Naverage; i++) {
 
-    if (i % 100 == 0) fprintf (stderr, ".");
-
-    radius = hypot((REF_DEC1 - catalog[0].average[i].D), (REF_RA1 - catalog[0].average[i].R));
-    if (radius < 0.0001) {
-      fprintf (stderr, "found it\n");
-    }
-    radius = hypot((REF_DEC2 - catalog[0].average[i].D), (REF_RA2 - catalog[0].average[i].R));
-    if (radius < 0.0001) {
-      fprintf (stderr, "found it\n");
-    }
+    // if (i % 100 == 0) fprintf (stderr, ".");
+
+    // radius = hypot((REF_DEC1 - catalog[0].average[i].D), (REF_RA1 - catalog[0].average[i].R));
+    // if (radius < 0.0001) {
+    //   fprintf (stderr, "found it\n");
+    // }
+    // radius = hypot((REF_DEC2 - catalog[0].average[i].D), (REF_RA2 - catalog[0].average[i].R));
+    // if (radius < 0.0001) {
+    //   fprintf (stderr, "found it\n");
+    // }
 
     // do any of the measures for this object match group A?
@@ -106,5 +116,5 @@
       valid &= (catalog[0].secfilt[i*Nsecfilt + yNsec].M < 1.0);
       valid &= (catalog[0].secfilt[i*Nsecfilt + zNsec].M < 1.0);
-      // XXX ignoring the color restriction for now
+      // XXX color restrictions are applied in the pair-wise matching below
       
       // measure-based tests:
@@ -187,5 +197,5 @@
     Nslow ++;
   }
-  fprintf (stderr, "%lld of %lld are slow; %lld in group A, %lld in group B\n", (long long) Nslow, (long long) catalog[0].Naverage, (long long) NgroupA, (long long) NgroupB);
+  fprintf (stderr, "%lld of %lld are slow or invalid; %lld in group A, %lld in group B\n", (long long) Nslow, (long long) catalog[0].Naverage, (long long) NgroupA, (long long) NgroupB);
     
   // double loop over unmarked objects (sorted in RA / X)
@@ -229,10 +239,10 @@
     nj = N1[j];
 
-    if (ni == 131030) {
-      fprintf (stderr, "got 2mass\n");
-    }
-    if (nj == 53581) {
-      fprintf (stderr, "got ps1\n");
-    }
+    // if (ni == 131030) {
+    //   fprintf (stderr, "got 2mass\n");
+    // }
+    // if (nj == 53581) {
+    //   fprintf (stderr, "got ps1\n");
+    // }
 
     if (slowMoving[ni]) NEXT_I;
@@ -273,9 +283,21 @@
       Nmatch ++;
 
-      if (1) fprintf (stderr, "match %d = %lld %lld : %f %f : %f %f : %f\n", 
-		      Nmatch, (long long) i, (long long) J,
-		      catalog[0].average[ni].R, catalog[0].average[ni].D,
-		      catalog[0].average[nj].R, catalog[0].average[nj].D,
-		      sqrt(dR));
+      // for the moment, just write the matches to stdout:
+      float pmx = -dX; // proper-motion displacement in ra  direction (B - A) [arcsec]
+      float pmy = -dY; // proper-motion displacement in dec direction (B - A) [arcsec]
+      fprintf (stdout, "%11.7f %11.7f  %11.7f %11.7f : %7.2f %7.2f  %7.2f : %7.3f %6.3f  %7.3f %6.3f  %7.3f %6.3f  %7.3f %6.3f  %7.3f %6.3f\n", 
+	       catalog[0].average[ni].R, catalog[0].average[ni].D,
+	       catalog[0].average[nj].R, catalog[0].average[nj].D,
+	       pmx, pmy, sqrt(dR),
+	       catalog[0].secfilt[nj*Nsecfilt + zNsec].M,
+	       catalog[0].secfilt[nj*Nsecfilt + zNsec].dM,
+	       catalog[0].secfilt[nj*Nsecfilt + yNsec].M, 
+	       catalog[0].secfilt[nj*Nsecfilt + yNsec].dM,
+	       catalog[0].secfilt[ni*Nsecfilt + jNsec].M,
+	       catalog[0].secfilt[ni*Nsecfilt + jNsec].dM,
+	       catalog[0].secfilt[ni*Nsecfilt + hNsec].M,
+	       catalog[0].secfilt[ni*Nsecfilt + hNsec].dM,
+	       catalog[0].secfilt[ni*Nsecfilt + kNsec].M,
+	       catalog[0].secfilt[ni*Nsecfilt + kNsec].dM);
     }
     i++;
