(parse_aggregate_functions) If dict_create_var() fails, don't
[pspp-builds.git] / src / moments.c
index c993f7ae0a6d3c65e3c67f8fa891e5fa12b60771..3890cbde441d83867c319c3b2a256c6a0bad274c 100644 (file)
@@ -62,9 +62,9 @@ calc_moments (enum moment max_moment,
             }
           if (max_moment >= MOMENT_KURTOSIS && kurtosis != NULL && w > 3.)
             {
-              double g2 = ((w * (w + 1.) * d4
-                            - 3. * pow2 (d2) * (w - 1.))
-                           / ((w - 1.) * (w - 2.) * (w - 3.) * pow2 (s2)));
+              double den = (w - 2.) * (w - 3.) * pow2 (s2);
+              double g2 = (w * (w + 1) * d4 / (w - 1.) / den
+                           - 3. * pow2 (d2) / den);
               if (finite (g2))
                 *kurtosis = g2; 
             }
@@ -501,14 +501,14 @@ read_values (double **values, double **weights, size_t *cnt)
   *values = NULL;
   *weights = NULL;
   *cnt = 0;
-  while (token == T_NUM) 
+  while (lex_is_number ())
     {
       double value = tokval;
       double weight = 1.;
       lex_get ();
       if (lex_match ('*'))
         {
-          if (token != T_NUM) 
+          if (!lex_is_number ())
             {
               lex_error (_("expecting weight value"));
               return 0;