X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fcategory.h;h=f90ae7cd2809e9b3b96d8968de1c1f1ae71e0610;hb=124dea11f9542304e35bef92b7f3a46d5afca4d7;hp=30ca272293d310f89f75e7c8abda9a00c0ce5eca;hpb=dcf9b154cbcaa35c3d8459a201b77eec8bcb30bd;p=pspp-builds.git diff --git a/src/data/category.h b/src/data/category.h index 30ca2722..f90ae7cd 100644 --- a/src/data/category.h +++ b/src/data/category.h @@ -1,26 +1,23 @@ -/* PSPP - Binary encodings for categorical variables. +/* PSPP - a program for statistical analysis. Copyright (C) 2005 Free Software Foundation, Inc. - Written by Jason H Stover . - 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 2 of the - License, or (at your option) any later version. + 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. + 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, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA. */ + along with this program. If not, see . */ /* Functions and data structures to recode categorical variables into vectors and sub-rows of matrices. - + To fit many types of statistical models, it is necessary to change each value of a categorical variable to a vector with binary entries. These vectors are then stored as sub-rows within a matrix @@ -33,34 +30,40 @@ */ -#ifndef CAT_H -#define CAT_H -#define CAT_VALUE_NOT_FOUND -2 +#ifndef CATEGORY_H +#define CATEGORY_H #include +#include - +struct cat_vals; +struct variable ; union value; -struct variable ; + +void cat_stored_values_create (const struct variable *); +void cat_stored_values_destroy (struct cat_vals *); + +size_t cat_value_find (const struct variable *, const union value *); + +const union value *cat_subscript_to_value (const size_t, + const struct variable *); + + +void cat_value_update (const struct variable *, const union value *); /* - This structure contains the observed values of a - categorical variable. - */ -struct cat_vals -{ - union value *vals; - size_t n_categories; - size_t n_allocated_categories; /* This is used only during - initialization to keep - track of the number of - values stored. - */ -}; + Return the count for the sth category. +*/ +size_t +cat_get_category_count (const size_t, const struct variable *); /* Return the number of categories of a categorical variable. */ size_t cat_get_n_categories (const struct variable *v); - +/* + If VAR is categorical with d categories, its first category should + correspond to the origin in d-dimensional Euclidean space. + */ +bool cat_is_origin (const struct variable *, const union value *); #endif