Index: /branches/eam_branches/ipp-20230313/Ohana/src/opihi/cmd.data/uniq.c
===================================================================
--- /branches/eam_branches/ipp-20230313/Ohana/src/opihi/cmd.data/uniq.c	(revision 42516)
+++ /branches/eam_branches/ipp-20230313/Ohana/src/opihi/cmd.data/uniq.c	(revision 42517)
@@ -45,7 +45,15 @@
     opihi_flt *indata = NULL;
     ALLOCATE (indata, opihi_flt, ivec[0].Nelements);
-    memcpy (indata, ivec->elements.Flt, ivec[0].Nelements*sizeof(opihi_flt));
 
-    dsort (indata, ivec->Nelements);
+    // manually copy and exclude any nan values
+    int Nindata = 0;
+    for (i = 0; i < ivec->Nelements; i++) {
+      if (!isfinite(ivec[0].elements.Flt[i])) continue;
+      indata[Nindata] = ivec[0].elements.Flt[i];
+      Nindata ++;
+    }
+    // XXX do not do this: memcpy (indata, ivec->elements.Flt, ivec[0].Nelements*sizeof(opihi_flt));
+
+    dsort (indata, Nindata);
 
     Nnew = 0;
@@ -54,8 +62,8 @@
     opihi_flt *vsrc = indata;
 
-    int onePercent = ivec->Nelements / 100;
+    int onePercent = Nindata / 100;
 
     struct sigaction *old_sigaction = SetInterrupt();
-    for (i = 0; (i < ivec->Nelements) && !interrupt; Nnew++) {
+    for (i = 0; (i < Nindata) && !interrupt; Nnew++) {
       vtgt[Nnew] = *vsrc;
       int Ndup = 0;
