Change how checking for missing values works.
[pspp] / src / math / covariance.c
index 44787c679a2a107acd5ef4eb1f7888c12ffbf366..79fce25cef28362dbe7b404377d436e92727111c 100644 (file)
@@ -129,7 +129,7 @@ struct covariance
    be identical.  If missing values are involved, then element (i,j)
    is the moment of the i th variable, when paired with the j th variable.
  */
-const gsl_matrix *
+gsl_matrix *
 covariance_moments (const struct covariance *cov, int m)
 {
   return cov->moments[m];
@@ -145,7 +145,7 @@ covariance_1pass_create (size_t n_vars, const struct variable *const *vars,
                         bool centered)
 {
   size_t i;
-  struct covariance *cov = xzalloc (sizeof *cov);
+  struct covariance *cov = XZALLOC (struct covariance);
 
   cov->centered = centered;
   cov->passes = 1;
@@ -262,7 +262,7 @@ is_missing (const struct covariance *cov, int i, const struct ccase *c)
 
   const union value *val = case_data (c, var);
 
-  return var_is_value_missing (var, val, cov->exclude);
+  return (var_is_value_missing (var, val) & cov->exclude) != 0;
 }