X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Fregression.q;h=ca1f67da0e00849f11898d7c95c0fe1b84724f67;hb=2fa50c14e54abe7095b53f6a790f19d90f20987b;hp=c41f9e7895e7e05595331b767994a725cf417914;hpb=fe8dc2171009e90d2335f159d05f7e6660e24780;p=pspp diff --git a/src/language/stats/regression.q b/src/language/stats/regression.q index c41f9e7895..ca1f67da0e 100644 --- a/src/language/stats/regression.q +++ b/src/language/stats/regression.q @@ -792,6 +792,7 @@ identify_indep_vars (const struct variable **indep_vars, } return n_indep_vars; } + static double fill_covariance (gsl_matrix *cov, struct covariance *all_cov, const struct variable **vars, @@ -804,12 +805,15 @@ fill_covariance (gsl_matrix *cov, struct covariance *all_cov, size_t dep_subscript; size_t *rows; const gsl_matrix *ssizes; - gsl_matrix *cm; const gsl_matrix *mean_matrix; const gsl_matrix *ssize_matrix; double result = 0.0; - cm = covariance_calculate_unnormalized (all_cov); + gsl_matrix *cm = covariance_calculate_unnormalized (all_cov); + + if ( cm == NULL) + return 0; + rows = xnmalloc (cov->size1 - 1, sizeof (*rows)); for (i = 0; i < n_all_vars; i++) @@ -959,8 +963,10 @@ run_regression (struct casereader *input, struct cmd_regression *cmd, dict_get_weight (dict), MV_ANY); reader = casereader_clone (input); - reader = casereader_create_filter_missing (reader, v_variables, n_variables, + reader = casereader_create_filter_missing (reader, all_vars, n_all_vars, MV_ANY, NULL, NULL); + + for (; (c = casereader_read (reader)) != NULL; case_unref (c)) { covariance_accumulate (cov, c);