X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Fregression.c;h=e08f4a1d76f051b4686f3d4a1b19cd00cee725f7;hb=8d33786b32ea7f1d709c33d5a7c2c442fbeaafff;hp=6fa114338eb344daca89cd15bf0a1041491548ef;hpb=95008dd8d8a668c4e7163486835e32d1755b8269;p=pspp diff --git a/src/language/stats/regression.c b/src/language/stats/regression.c index 6fa114338e..e08f4a1d76 100644 --- a/src/language/stats/regression.c +++ b/src/language/stats/regression.c @@ -175,14 +175,14 @@ save_trans_func (void *aux, struct ccase **c, casenumber x UNUSED) { if (ws->pred_idx != -1) { - double pred = case_data_idx (in, ws->extras * k + ws->pred_idx)->f; - case_data_rw (*c, ws->predvars[k])->f = pred; + double pred = case_num_idx (in, ws->extras * k + ws->pred_idx); + *case_num_rw (*c, ws->predvars[k]) = pred; } if (ws->res_idx != -1) { - double resid = case_data_idx (in, ws->extras * k + ws->res_idx)->f; - case_data_rw (*c, ws->residvars[k])->f = resid; + double resid = case_num_idx (in, ws->extras * k + ws->res_idx); + *case_num_rw (*c, ws->residvars[k]) = resid; } } case_unref (in); @@ -671,8 +671,7 @@ run_regression_get_models (const struct regression *cmd, bool output) { size_t i; - struct linreg **models = NULL; - struct model_container *model_container = xzalloc (sizeof (*model_container) * cmd->n_vars); + struct model_container *model_container = XCALLOC (cmd->n_vars, struct model_container); struct ccase *c; struct covariance *cov; @@ -731,7 +730,7 @@ run_regression_get_models (const struct regression *cmd, casereader_destroy (r); } - models = xcalloc (cmd->n_dep_vars, sizeof (*models)); + struct linreg **models = XCALLOC (cmd->n_dep_vars, struct linreg*); for (int k = 0; k < cmd->n_dep_vars; k++) { @@ -827,14 +826,14 @@ run_regression (const struct regression *cmd, if (cmd->pred) { double pred = linreg_predict (models[k], vals, n_indep); - case_data_rw_idx (outc, k * ws->extras + ws->pred_idx)->f = pred; + *case_num_rw_idx (outc, k * ws->extras + ws->pred_idx) = pred; } if (cmd->resid) { - double obs = case_data (c, linreg_dep_var (models[k]))->f; + double obs = case_num (c, linreg_dep_var (models[k])); double res = linreg_residual (models[k], obs, vals, n_indep); - case_data_rw_idx (outc, k * ws->extras + ws->res_idx)->f = res; + *case_num_rw_idx (outc, k * ws->extras + ws->res_idx) = res; } free (vals); free (vars);