From 1abf50d4363f70d1fb2e07dafbac0761386ac20e Mon Sep 17 00:00:00 2001 From: John Darrington Date: Fri, 21 May 2010 17:33:00 +0200 Subject: [PATCH] Removed src/math/coefficient.[ch] which are no longer used --- src/language/stats/glm.q | 1 - src/math/coefficient.c | 256 --------------------------------------- src/math/coefficient.h | 130 -------------------- 3 files changed, 387 deletions(-) delete mode 100644 src/math/coefficient.c delete mode 100644 src/math/coefficient.h diff --git a/src/language/stats/glm.q b/src/language/stats/glm.q index 1a941152..db206ee9 100644 --- a/src/language/stats/glm.q +++ b/src/language/stats/glm.q @@ -39,7 +39,6 @@ #include #include #include -#include #include #include #include diff --git a/src/math/coefficient.c b/src/math/coefficient.c deleted file mode 100644 index b3dccc51..00000000 --- a/src/math/coefficient.c +++ /dev/null @@ -1,256 +0,0 @@ -/* PSPP - a program for statistical analysis. - Copyright (C) 2005, 2009, 2010 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 - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -/* - Accessor functions for matching coefficients and variables. - */ -#include -#include -#include "src/math/design-matrix.h" - -#include - - -struct varinfo -{ - const struct variable *v; /* Variable associated with this - coefficient. Note this variable - may not be unique. In other words, - a coefficient structure may have - other v_info's, each with its own - variable. */ - const union value *val; /* Value of the variable v which this varinfo - refers to. This member is relevant only to - categorical variables. */ - double mean; /* Mean for this variable */ - double sd; /* Standard deviation for this variable */ -}; - -void -pspp_coeff_free (struct pspp_coeff *c) -{ - free (c->v_info); - free (c); -} - -/* - Initialize the variable and value pointers inside the - coefficient structures for the model. - */ -void -pspp_coeff_init (struct pspp_coeff ** coeff, const struct design_matrix *X) -{ - size_t i; - int n_vals = 1; - - assert (coeff != NULL); - for (i = 0; i < X->m->size2; i++) - { - coeff[i] = xmalloc (sizeof (*coeff[i])); - coeff[i]->n_vars = n_vals; /* Currently, no procedures allow - interactions. This line will have to - change when procedures that allow - interaction terms are written. - */ - coeff[i]->v_info = xnmalloc (coeff[i]->n_vars, sizeof (*coeff[i]->v_info)); - assert (coeff[i]->v_info != NULL); - coeff[i]->v_info->v = design_matrix_col_to_var (X, i); - - if (var_is_alpha (coeff[i]->v_info->v)) - { - size_t k; - k = design_matrix_var_to_column (X, coeff[i]->v_info->v); - assert (k <= i); - k = i - k; - coeff[i]->v_info->val = - cat_subscript_to_value (k, coeff[i]->v_info->v); - } - coeff[i]->v_info->mean = 0.0; - coeff[i]->v_info->sd = 0.0; - } -} -void -pspp_coeff_set_estimate (struct pspp_coeff *coef, double estimate) -{ - coef->estimate = estimate; -} - -void -pspp_coeff_set_std_err (struct pspp_coeff *coef, double std_err) -{ - coef->std_err = std_err; -} - -/* - Return the estimated value of the coefficient. - */ -double -pspp_coeff_get_est (const struct pspp_coeff *coef) -{ - if (coef == NULL) - { - return 0.0; - } - return coef->estimate; -} - -/* - Return the standard error of the estimated coefficient. -*/ -double -pspp_coeff_get_std_err (const struct pspp_coeff *coef) -{ - if (coef == NULL) - { - return 0.0; - } - return coef->std_err; -} - -/* - How many variables are associated with this coefficient? - */ -int -pspp_coeff_get_n_vars (struct pspp_coeff *coef) -{ - if (coef == NULL) - { - return 0; - } - return coef->n_vars; -} - -/* - Which variable does this coefficient match? I should be - 0 unless the coefficient refers to an interaction term. - */ -const struct variable * -pspp_coeff_get_var (struct pspp_coeff *coef, int i) -{ - if (coef == NULL) - { - return NULL; - } - assert (i < coef->n_vars); - return (coef->v_info + i)->v; -} - -/* - Which coefficient does this variable match? If the variable is - categorical, and has more than one coefficient, use the VAL to find - its coefficient. - */ -struct pspp_coeff * -pspp_coeff_var_to_coeff (const struct variable *v, struct pspp_coeff **coefs, - size_t n_coef, const union value *val) -{ - size_t i = 0; - size_t j = 0; - - struct pspp_coeff *result = NULL; - - if (v != NULL) - { - while (i < n_coef) - { - if (coefs[i]->v_info != NULL) - { - if (coefs[i]->v_info->v == v) - { - break; - } - } - i++; - } - result = coefs[i]; - if (var_is_alpha (v)) - { - /* - Use the VAL to find the coefficient. - */ - if (val != NULL) - { - int width = var_get_width (v); - - j = i; - while (j < n_coef - && value_compare_3way (pspp_coeff_get_value (coefs[j], v), - val, width) != 0) - { - j++; - } - result = ((j < n_coef) ? coefs[j] : NULL); - } - } - } - return result; -} - -/* - Which value is associated with this coefficient/variable combination? - */ -const union value * -pspp_coeff_get_value (struct pspp_coeff *coef, - const struct variable *v) -{ - int i = 0; - const struct variable *candidate; - - if (coef == NULL || v == NULL) - { - return NULL; - } - if (var_is_numeric (v)) - { - return NULL; - } - while (i < coef->n_vars) - { - candidate = pspp_coeff_get_var (coef, i); - if (v == candidate) - { - return (coef->v_info + i)->val; - } - i++; - } - return NULL; -} - -/* - Get or set the standard deviation of the variable associated with this coefficient. - */ -double pspp_coeff_get_sd (const struct pspp_coeff *coef) -{ - return coef->v_info->sd; -} -void pspp_coeff_set_sd (struct pspp_coeff *coef, double s) -{ - coef->v_info->sd = s; -} - -/* - Get or set the mean for the variable associated with this coefficient. -*/ -double pspp_coeff_get_mean (const struct pspp_coeff *coef) -{ - return coef->v_info->mean; -} - -void pspp_coeff_set_mean (struct pspp_coeff *coef, double m) -{ - coef->v_info->mean = m; -} - diff --git a/src/math/coefficient.h b/src/math/coefficient.h deleted file mode 100644 index 705c1e0e..00000000 --- a/src/math/coefficient.h +++ /dev/null @@ -1,130 +0,0 @@ -/* PSPP - a program for statistical analysis. - Copyright (C) 2005 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 - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - - -#ifndef COEFFICIENT_H -#define COEFFICIENT_H - -#include -#include -#include - -/* - This file contains definitions of data structures for storing - coefficients of a statistical model. The coefficients are the point - in the model where the theoretical aspects of the model meet the - data. As such, the coefficients are the interface where users need - to match variable names and values with any information about the - model itself. This file and coefficient.c provide this interface - between data and model structures. - */ - -struct design_matrix; - -/* - Cache for the relevant data from the model. There are several - members which the caller might not use, and which could use a lot of - storage. Therefore non-essential members of the struct will be - allocated only when requested. - */ -struct pspp_coeff -{ - double estimate; /* Estimated coefficient. */ - double std_err; /* Standard error of the estimate. */ - struct varinfo *v_info; /* Information pertaining to the variable(s) - associated with this coefficient. The - calling function should initialize this - value with the functions in coefficient.c. - The estimation procedure ignores this - member. It is here so the caller can match - parameters with relevant variables and - values. If the coefficient is associated - with an interaction, then v_info contains - information for multiple variables. */ - int n_vars; /* Number of variables associated with this - coefficient. Coefficients corresponding to - interaction terms will have more than one - variable. */ -}; -typedef struct pspp_coeff coefficient; - -void pspp_coeff_free (struct pspp_coeff *); - -/* - Initialize the variable and value pointers inside the - coefficient structures for the linear model. - */ -void pspp_coeff_init (struct pspp_coeff **, const struct design_matrix *); - - -void -pspp_coeff_set_estimate (struct pspp_coeff *, double estimate); - -void -pspp_coeff_set_std_err (struct pspp_coeff *, double std_err); - -/* - Accessor functions for matching coefficients and variables. - */ - -/* - Return the estimated value of the coefficient. - */ -double pspp_coeff_get_est (const struct pspp_coeff *); - -/* - Return the standard error of the estimated coefficient. -*/ -double pspp_coeff_get_std_err (const struct pspp_coeff *); - -/* - How many variables are associated with this coefficient? - */ -int pspp_coeff_get_n_vars (struct pspp_coeff *); - -/* - Which coefficient does this variable match? If the variable is - categorical, and has more than one coefficient, report the first - coefficient found. Note that in this case, the result will depend on - the order of COEFS. - */ -struct pspp_coeff * -pspp_coeff_var_to_coeff (const struct variable *, struct pspp_coeff **, size_t, const union value *); - -/* - Which variable does this coefficient match? The int argument is usually - 0, unless the coefficient refers to an interaction. - */ -const struct variable *pspp_coeff_get_var (struct pspp_coeff *, - int); -/* - Which value is associated with this coefficient/variable comination? - */ -const union value *pspp_coeff_get_value (struct pspp_coeff *, - const struct variable *); - -/* - Get or set the standard deviation of the variable associated with this coefficient. - */ -double pspp_coeff_get_sd (const struct pspp_coeff *); -void pspp_coeff_set_sd (struct pspp_coeff *, double); - -/* - Get or set the mean for the variable associated with this coefficient. -*/ -double pspp_coeff_get_mean (const struct pspp_coeff *); -void pspp_coeff_set_mean (struct pspp_coeff *, double); -#endif -- 2.30.2