New implementation of long variable names. Each variable has a
[pspp] / src / moments.c
index c993f7ae0a6d3c65e3c67f8fa891e5fa12b60771..4bafb0515781095521a1d15efd998f8c78e2b22e 100644 (file)
@@ -14,8 +14,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA. */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301, USA. */
 
 #include <config.h>
 #include "moments.h"
@@ -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;