X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmath%2Finteraction.h;h=23bd4f219eaf2813b06f240f91ca27e06ec61a50;hb=8fa37ab22125896c4549d8681804aa65095d4c1c;hp=73b440be32b014cc4da06c715266efb1b4e6da18;hpb=8953baa61127d6d3b91f763663ea647bf3e4e793;p=pspp diff --git a/src/math/interaction.h b/src/math/interaction.h index 73b440be32..23bd4f219e 100644 --- a/src/math/interaction.h +++ b/src/math/interaction.h @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2009 Free Software Foundation, Inc. + Copyright (C) 2011 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 @@ -14,28 +14,39 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef INTERACTION_H -#define INTERACTION_H -#include - -struct interaction_variable; -struct interaction_value; - -struct interaction_variable * interaction_variable_create (const struct variable **, int); -void interaction_variable_destroy (struct interaction_variable *); -struct interaction_value * interaction_value_create (const struct interaction_variable *, const union value **); -void interaction_value_destroy (struct interaction_value *); -size_t interaction_variable_get_n_vars (const struct interaction_variable *); -double interaction_value_get_nonzero_entry (const struct interaction_value *); -union value * interaction_value_get (const struct interaction_value *); -const struct variable * interaction_variable_get_var (const struct interaction_variable *); -size_t interaction_get_n_numeric (const struct interaction_variable *); -size_t interaction_get_n_alpha (const struct interaction_variable *); -size_t interaction_get_n_vars (const struct interaction_variable *); -const struct variable * interaction_variable_get_member (const struct interaction_variable *, size_t); -bool is_interaction (const struct variable *, const struct interaction_variable **, size_t); -struct interaction_value * -interaction_case_data (const struct ccase *, const struct variable *, - const struct interaction_variable **, size_t); -double interaction_value_get_nonzero_entry (const struct interaction_value *); + +#ifndef _INTERACTION_H__ +#define _INTERACTION_H__ 1 + +#include +#include "data/missing-values.h" + +struct interaction; +struct variable; +struct string; + +#include +struct interaction +{ + size_t n_vars; + const struct variable **vars; +}; + +struct interaction * interaction_create (const struct variable *); +struct interaction * interaction_clone (const struct interaction *); +void interaction_destroy (struct interaction *); +void interaction_add_variable (struct interaction *, const struct variable *); +void interaction_dump (const struct interaction *); +void interaction_to_string (const struct interaction *iact, struct string *str); +bool interaction_is_proper_subset (const struct interaction *x, const struct interaction *y); +bool interaction_is_subset (const struct interaction *x, const struct interaction *y); + + +struct ccase; +unsigned int interaction_case_hash (const struct interaction *, const struct ccase *, unsigned int base); +bool interaction_case_equal (const struct interaction *, const struct ccase *, const struct ccase *); +bool interaction_case_is_missing (const struct interaction *, const struct ccase *, enum mv_class); +int interaction_case_cmp_3way (const struct interaction *, const struct ccase *, const struct ccase *); + + #endif