Change how checking for missing values works.
[pspp] / src / language / stats / t-test-indep.c
index fff8c968c5f99405451ff3e06f961387e00acac0..3bfc7775cc5698dcd3bb95090c59705561817368 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2011 Free Software Foundation, Inc.
+   Copyright (C) 2011, 2020 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
@@ -60,7 +60,7 @@ which_group (const union value *v, const struct indep_samples *is)
 {
   int width = var_get_width (is->gvar);
   int cmp = value_compare_3way (v, is->gval0, width);
-  if ( is->cut )
+  if (is->cut)
     return  (cmp < 0);
 
   if (cmp == 0)
@@ -82,7 +82,7 @@ indep_run (struct tt *tt, const struct variable *gvar,
   struct ccase *c;
   struct casereader *r;
 
-  struct pair_stats *ps = xcalloc (tt->n_vars, sizeof *ps);
+  struct pair_stats *ps = XCALLOC (tt->n_vars,  struct pair_stats);
 
   int v;
 
@@ -99,20 +99,20 @@ indep_run (struct tt *tt, const struct variable *gvar,
   is.cut = cut;
 
   r = casereader_clone (reader);
-  for ( ; (c = casereader_read (r) ); case_unref (c))
+  for (; (c = casereader_read (r)); case_unref (c))
     {
       double w = dict_get_case_weight (tt->dict, c, NULL);
 
       const union value *gv = case_data (c, gvar);
 
       int grp = which_group (gv, &is);
-      if ( grp < 0)
+      if (grp < 0)
        continue;
 
       for (v = 0; v < tt->n_vars; ++v)
        {
          const union value *val = case_data (c, tt->vars[v]);
-         if (var_is_value_missing (tt->vars[v], val, tt->exclude))
+         if (var_is_value_missing (tt->vars[v], val) & tt->exclude)
            continue;
 
          moments_pass_one (ps[v].mom[grp], val->f, w);
@@ -122,20 +122,20 @@ indep_run (struct tt *tt, const struct variable *gvar,
   casereader_destroy (r);
 
   r = casereader_clone (reader);
-  for ( ; (c = casereader_read (r) ); case_unref (c))
+  for (; (c = casereader_read (r)); case_unref (c))
     {
       double w = dict_get_case_weight (tt->dict, c, NULL);
 
       const union value *gv = case_data (c, gvar);
 
       int grp = which_group (gv, &is);
-      if ( grp < 0)
+      if (grp < 0)
        continue;
 
       for (v = 0; v < tt->n_vars; ++v)
        {
          const union value *val = case_data (c, tt->vars[v]);
-         if (var_is_value_missing (tt->vars[v], val, tt->exclude))
+         if (var_is_value_missing (tt->vars[v], val) & tt->exclude)
            continue;
 
          moments_pass_two (ps[v].mom[grp], val->f, w);
@@ -145,20 +145,20 @@ indep_run (struct tt *tt, const struct variable *gvar,
   casereader_destroy (r);
 
   r = reader;
-  for ( ; (c = casereader_read (r) ); case_unref (c))
+  for (; (c = casereader_read (r)); case_unref (c))
     {
       double w = dict_get_case_weight (tt->dict, c, NULL);
 
       const union value *gv = case_data (c, gvar);
 
       int grp = which_group (gv, &is);
-      if ( grp < 0)
+      if (grp < 0)
        continue;
 
       for (v = 0; v < tt->n_vars; ++v)
        {
          const union value *val = case_data (c, tt->vars[v]);
-         if (var_is_value_missing (tt->vars[v], val, tt->exclude))
+         if (var_is_value_missing (tt->vars[v], val) & tt->exclude)
            continue;
 
          levene_pass_three (ps[v].nl, val->f, w, gv);
@@ -269,6 +269,7 @@ indep_test (const struct tt *tt, const struct pair_stats *ps)
     N_("Mean Difference"), PIVOT_RC_OTHER,
     N_("Std. Error Difference"), PIVOT_RC_OTHER);
   pivot_category_create_group (
+    /* xgettext:no-c-format */
     group, N_("95% Confidence Interval of the Difference"),
     N_("Lower"), PIVOT_RC_OTHER,
     N_("Upper"), PIVOT_RC_OTHER);