X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmath%2Flinreg.c;h=47d21cf8f5fdfed7f357f96f45038493374b6aab;hb=c427bfc34eb7db7e0b489091430fe1cb373b2261;hp=63d1a0f976ee420ca52b476e67aa85cd94ff4a5e;hpb=a258e53c63a08b0ec48aea8f03808eb651729424;p=pspp diff --git a/src/math/linreg.c b/src/math/linreg.c index 63d1a0f976..47d21cf8f5 100644 --- a/src/math/linreg.c +++ b/src/math/linreg.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2005, 2010 Free Software Foundation, Inc. + Copyright (C) 2005, 2010, 2011 Free Software Foundation, Inc. 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 @@ -15,17 +15,21 @@ along with this program. If not, see . */ #include + +#include "math/linreg.h" + #include #include #include #include #include #include -#include -#include -#include -#include -#include + +#include "data/value.h" +#include "data/variable.h" +#include "linreg/sweep.h" + +#include "gl/xalloc.h" /* Find the least-squares estimate of b for the linear model: @@ -103,23 +107,29 @@ linreg_alloc (const struct variable *depvar, const struct variable **indep_vars, c->pred = NULL; c->resid = NULL; + c->refcnt = 1; return c; } -bool -linreg_free (void *m) +void +linreg_ref (linreg *c) +{ + c->refcnt++; +} + +void +linreg_unref (linreg *c) { - linreg *c = m; - if (c != NULL) + if (c && --c->refcnt == 0) { gsl_vector_free (c->indep_means); gsl_vector_free (c->indep_std); + gsl_vector_free (c->ss_indeps); gsl_matrix_free (c->cov); free (c->indep_vars); free (c->coeff); free (c); } - return true; } static void