Index: trunk/Ohana/src/relastro/src/liststats.c
===================================================================
--- trunk/Ohana/src/relastro/src/liststats.c	(revision 17213)
+++ trunk/Ohana/src/relastro/src/liststats.c	(revision 17214)
@@ -1,6 +1,10 @@
 # include "relastro.h"
 
-enum {M_MEAN, M_MEDIAN, M_WT_MEAN, M_INNER_MEAN, 
-      M_INNER_WTMEAN, M_CHI_INNER_MEAN, M_CHI_INNER_WTMEAN};
+enum {M_MEDIAN, 
+      M_MEAN, M_WTMEAN, 
+      M_INNER_MEAN, M_INNER_WTMEAN, 
+      M_INNER_80_MEAN, M_INNER_80_WTMEAN, 
+      M_CHI_INNER_MEAN, M_CHI_INNER_WTMEAN, 
+      M_CHI_INNER_80_MEAN, M_CHI_INNER_80_WTMEAN};
 
 static int statmode;
@@ -11,9 +15,13 @@
   if (!strcmp (mode, "MEAN")) statmode = M_MEAN;
   if (!strcmp (mode, "MEDIAN")) statmode = M_MEDIAN;
-  if (!strcmp (mode, "WT_MEAN")) statmode = M_WT_MEAN;
+  if (!strcmp (mode, "WTMEAN")) statmode = M_WTMEAN;
   if (!strcmp (mode, "INNER_MEAN")) statmode = M_INNER_MEAN;
   if (!strcmp (mode, "INNER_WTMEAN")) statmode = M_INNER_WTMEAN;
+  if (!strcmp (mode, "INNER_80_MEAN")) statmode = M_INNER_80_MEAN;
+  if (!strcmp (mode, "INNER_80_WTMEAN")) statmode = M_INNER_80_WTMEAN;
   if (!strcmp (mode, "CHI_INNER_MEAN")) statmode = M_CHI_INNER_MEAN;
   if (!strcmp (mode, "CHI_INNER_WTMEAN")) statmode = M_CHI_INNER_WTMEAN;
+  if (!strcmp (mode, "CHI_INNER_80_MEAN")) statmode = M_CHI_INNER_80_MEAN;
+  if (!strcmp (mode, "CHI_INNER_80_WTMEAN")) statmode = M_CHI_INNER_80_WTMEAN;
 
   if (statmode == -1) {
@@ -38,5 +46,9 @@
 
   dsortpair (value, dvalue, N);
-  stats[0].median = value[(int)(0.5*N)];
+  if (N % 2) {
+    stats[0].median = value[(int)(0.5*N)];
+  } else {
+    stats[0].median = 0.5*(value[N/2] + value[N/2 - 1]);
+  }
   stats[0].min    = value[0];
   stats[0].max    = value[N-1];
@@ -51,5 +63,5 @@
     break;
   case M_MEAN:
-  case M_WT_MEAN:
+  case M_WTMEAN:
     ks = 0;
     ke = N;
@@ -66,7 +78,21 @@
     }
     break;
+  case M_INNER_80_MEAN:
+  case M_INNER_80_WTMEAN:
+  case M_CHI_INNER_80_MEAN:
+  case M_CHI_INNER_80_WTMEAN:
+    ks = 0.1*N + 0.1;
+    ke = 0.8*N + 0.1;
+    if (N <= 10) {
+      ks = 0;
+      ke = N;
+    }
+    break;
   }    
 
-  if ((statmode == M_CHI_INNER_MEAN) || (statmode == M_CHI_INNER_WTMEAN)) {
+  if ((statmode == M_CHI_INNER_MEAN) || 
+      (statmode == M_CHI_INNER_WTMEAN) || 
+      (statmode == M_CHI_INNER_80_MEAN) || 
+      (statmode == M_CHI_INNER_80_WTMEAN)) {
     ALLOCATE (chi, double, N);
     for (i = 0; i < N; i++) {
@@ -79,5 +105,9 @@
   /* calculating the per-star offset based on the weighted average */
   M = dM = Nm = 0;
-  if ((statmode == M_WT_MEAN) || (statmode == M_INNER_WTMEAN) || (statmode == M_CHI_INNER_WTMEAN)) {
+  if ((statmode == M_WTMEAN) || 
+      (statmode == M_INNER_WTMEAN) || 
+      (statmode == M_INNER_80_WTMEAN) || 
+      (statmode == M_CHI_INNER_WTMEAN) || 
+      (statmode == M_CHI_INNER_80_WTMEAN)) {
     for (i = ks; i < ke; i++) {
       M   += value[i] / SQ (dvalue[i]);
