ref count the linreg structure so as to avoid double free problems
[pspp] / src / math / moments.c
index d129f6ab038b3eee06104e716b15fbcf432c61c5..83cbbe4ca1fb3e4c2d4e2a6497ed84ced68b0c31 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1997-9, 2000, 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
    along with this program.  If not, see <http://www.gnu.org/licenses/>. */
 
 #include <config.h>
-#include "moments.h"
+
+#include "math/moments.h"
+
 #include <assert.h>
 #include <math.h>
 #include <stdlib.h>
-#include <libpspp/misc.h>
-#include <data/val-type.h>
-#include <data/value.h>
 
-#include "xalloc.h"
+#include "data/val-type.h"
+#include "data/value.h"
+#include "libpspp/misc.h"
+
+#include "gl/xalloc.h"
 
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
@@ -49,7 +52,7 @@ calc_moments (enum moment max_moment,
 
       /* From _SPSS Statistical Algorithms, 2nd ed.,
          0-918469-89-9, section "DESCRIPTIVES". */
-      if (fabs (*variance) >= 1e-20)
+      if (fabs (s2) >= 1e-20)
         {
           if (max_moment >= MOMENT_SKEWNESS && skewness != NULL && w > 2.)
             {
@@ -458,6 +461,13 @@ moments1_destroy (struct moments1 *m)
   free (m);
 }
 \f
+
+double
+calc_semean (double var, double W)
+{
+  return sqrt (var / W);
+}
+
 /* Returns the standard error of the skewness for the given total
    weight W.