Added pointer to residual variable to linreg cache
[pspp] / src / math / linreg / linreg.c
index 0406cad2183778097fc1783d016b1ad0c1c3eaa8..2945b26d87002f9983d1267d041ca5433ce6ac25 100644 (file)
@@ -99,6 +99,7 @@ pspp_linreg_cache_alloc (size_t n, size_t p)
   pspp_linreg_cache *c;
 
   c = (pspp_linreg_cache *) malloc (sizeof (pspp_linreg_cache));
+  c->depvar = NULL;
   c->indep_means = gsl_vector_alloc (p);
   c->indep_std = gsl_vector_alloc (p);
   c->ssx = gsl_vector_alloc (p);       /* Sums of squares for the
@@ -115,19 +116,23 @@ pspp_linreg_cache_alloc (size_t n, size_t p)
    */
   c->method = PSPP_LINREG_SWEEP;
   c->predict = pspp_linreg_predict;
+  c->residual = pspp_linreg_residual; /* The procedure to comput my residuals. */
+  c->resid = NULL; /* The variable storing my residuals. */
 
   return c;
 }
 
-void
-pspp_linreg_cache_free (pspp_linreg_cache * c)
+bool
+pspp_linreg_cache_free (void * m)
 {
+  pspp_linreg_cache *c = m;
   gsl_vector_free (c->indep_means);
   gsl_vector_free (c->indep_std);
   gsl_vector_free (c->ss_indeps);
   gsl_matrix_free (c->cov);
   pspp_linreg_coeff_free (c->coeff);
   free (c);
+  return true;
 }
 
 /*