Index: trunk/psLib/src/math/psStats.c
===================================================================
--- trunk/psLib/src/math/psStats.c	(revision 682)
+++ trunk/psLib/src/math/psStats.c	(revision 683)
@@ -29,20 +29,20 @@
     newStruct->sampleLQ = NAN;
     newStruct->robustMean = NAN;
-    newStruct->robustMeanNvalues = 0;
+    newStruct->robustMeanNvalues = -1;
     newStruct->robustMedian = NAN;
-    newStruct->robustMedianNvalues = 0;
+    newStruct->robustMedianNvalues = -1;
     newStruct->robustMode = NAN;
-    newStruct->robustModeNvalues = 0;
+    newStruct->robustModeNvalues = -1;
     newStruct->robustStdev = NAN;
     newStruct->robustUQ = NAN;
     newStruct->robustLQ = NAN;
     newStruct->clippedMean = NAN;
-    newStruct->clippedMeanNvalues = 0;
+    newStruct->clippedMeanNvalues = -1;
     newStruct->clippedStdev = NAN;
     newStruct->clipSigma = NAN;
-    newStruct->clipIter = 0;
+    newStruct->clipIter = -1;
     newStruct->min = NAN;
     newStruct->max = NAN;
-    newStruct->nValues = 0;
+    newStruct->nValues = -1;
     newStruct->options = options;
 
@@ -368,4 +368,36 @@
 }
 
+void p_psArraySampleUQ(const psVector *restrict myVector,
+                       const psVector *restrict maskVector,
+                       unsigned int maskVal,
+                       psStats *newStruct)
+{
+    psHistogram    *nonRobustHistogram = NULL;
+
+    if (-1 == newStruct->nValues) {
+        p_psArrayNValues(myVector, maskVector, maskVal, newStruct);
+    }
+
+    if (newStruct->nValues < MEDIAN_SIZE_THRESHOLD) {
+
+    }
+    else {
+        if (0 != isnan(newStruct->sampleStdev)) {
+            p_psArraySampleStdev(myVector, maskVector, maskVal, newStruct);
+        }
+        if (0 != isnan(newStruct->min)) {
+            p_psArrayMin(myVector, maskVector, maskVal, newStruct);
+        }
+        if (0 != isnan(newStruct->max)) {
+            p_psArrayMax(myVector, maskVector, maskVal, newStruct);
+        }
+
+        nonRobustHistogram = psHistogramAlloc(newStruct->min,
+                                              newStruct->max,
+                                              10);
+    }
+}
+
+
 /******************************************************************************
  
@@ -427,5 +459,5 @@
 
     if (stats->options & PS_STAT_SAMPLE_UQ) {
-        newStruct->sampleUQ = p_psArrayXXX(myVector, maskVector, maskVal);
+        p_psArraySampleUQ(myVector, maskVector, maskVal, newStruct);
     }
 
