Missing Value Dialog: Remove GTK_DIALOG_NO_SEPARATOR flag which does not exist in...
[pspp] / src / math / linreg.h
index 349d5a909c300c4713ee14a0196d967abbbcb5b6..e53a02956e2077e91f58ede8268ed68ab71fd60d 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2005 Free Software Foundation, Inc. Written by Jason H. Stover.
+   Copyright (C) 2005, 2011 Free Software Foundation, Inc. Written by Jason H. Stover.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
 #ifndef LINREG_H
 #define LINREG_H
-#include <stdbool.h>
+
 #include <gsl/gsl_math.h>
-#include <gsl/gsl_vector.h>
 #include <gsl/gsl_matrix.h>
+#include <gsl/gsl_vector.h>
+#include <stdbool.h>
 
 enum
 {
@@ -89,6 +90,7 @@ typedef struct pspp_linreg_opts_struct pspp_linreg_opts;
 
 struct linreg_struct
 {
+  int refcnt;
   double n_obs;                        /* Number of observations. */
   int n_indeps;                        /* Number of independent variables. */
   int n_coeffs;                 /* The intercept is not considered a
@@ -142,6 +144,7 @@ struct linreg_struct
 
   struct variable *pred;
   struct variable *resid;
+  int dependent_column; /* Column containing the dependent variable. Defaults to last column. */
 };
 
 typedef struct linreg_struct linreg;
@@ -151,7 +154,8 @@ typedef struct linreg_struct linreg;
 linreg *linreg_alloc (const struct variable *, const struct variable **, 
                      double, size_t);
 
-bool linreg_free (void *);
+void linreg_unref (linreg *);
+void linreg_ref (linreg *c);
 
 /*
   Fit the linear model via least squares. All pointers passed to pspp_linreg