Index: trunk/Ohana/src/relastro/include/relastro.h
===================================================================
--- trunk/Ohana/src/relastro/include/relastro.h	(revision 39225)
+++ trunk/Ohana/src/relastro/include/relastro.h	(revision 39238)
@@ -134,7 +134,12 @@
   double **A;
   double **B;
+  double **Cov;
+  double *Beta;
+  double *Beta_prev;
   int Nterms;
 } FitAstromData;
 
+// XXX do we need doubles for all of these?  I actually only have of order 100 of these
+// allocated at a time, so size is not an issue.
 typedef struct {
   double X, dX;
@@ -143,4 +148,7 @@
   double D, dD;
   double T, dT;
+  double Wx, Wy;
+  double rx, ry;
+  double u;
   double pR;
   double pD;
@@ -148,4 +156,5 @@
   double C_red;
   int measure;
+  int mask;
 } FitAstromPoint;
 
@@ -739,2 +748,11 @@
 int FitAstromResultSetPM (FitAstromResult *fit, int Nfit, Average *average);
 void AstromErrorSetLoop (int Nloop, int isImageMode);
+
+int FitPM_IRLS (FitAstromResult *fit, FitAstromData *data, FitAstromPoint *points, int Npoints, int VERBOSE);
+
+double MedianAbsDeviation(FitAstromPoint *points, int Npoints);
+
+int weighted_LS_PM (FitAstromResult *fit, FitAstromData *data, FitAstromPoint *points, int Npoints, int VERBOSE);
+
+double weight_cauchy (double x);
+double dpsi_cauchy (double x);
