Cruft removal
[pspp-builds.git] / src / math / interaction.c
index 46d7e13ece35439ec7c35df74270db09e7c5cca5..7fc9f0f63d2c5efee0098f06fe921d50758425e6 100644 (file)
@@ -15,7 +15,7 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>. */
 
 /*
-  An interaction is a gsl_vector containing a "product" of other
+  An interaction is a structure containing a "product" of other
   variables. The variables can be either categorical or numeric.
   If the variables are all numeric, the interaction is just the
   scalar product. If any of the variables are categorical, their
 
 #include <config.h>
 #include <assert.h>
-#include <gsl/gsl_math.h>
-#include <gsl/gsl_vector.h>
 #include <data/value.h>
 #include <data/variable.h>
+#include <gl/unistr.h>
 #include <math/interaction.h>
 #include <string.h>
 #include <xalloc.h>
@@ -143,26 +142,23 @@ struct interaction_value *
 interaction_value_create (const struct interaction_variable *var, const union value **vals)
 {
   struct interaction_value *result = NULL;
-  const struct variable *member;
-  size_t i;
-  size_t n_vars;
   
   if (var != NULL)
     {
+      size_t i;
       int val_width = var_get_width (interaction_get_variable (var));
-      int offset;
+      int offset = 0;
+      size_t n_vars = interaction_get_n_vars (var);
 
       result = xmalloc (sizeof (*result));
       result->intr = var;
-      n_vars = interaction_get_n_vars (var);
 
       value_init (&result->val, val_width);
 
-      offset = 0;
       result->f = 1.0;
       for (i = 0; i < n_vars; i++)
        {
-         member = interaction_get_member (var, i);
+          const struct variable *member = interaction_get_member (var, i);
 
          if (var_is_value_missing (member, vals[i], MV_ANY))
            {
@@ -174,9 +170,9 @@ interaction_value_create (const struct interaction_variable *var, const union va
            {
              if (var_is_alpha (var->members[i]))
                {
-                 char *val = value_str_rw (&result->val, val_width);
+                 uint8_t *val = value_str_rw (&result->val, val_width);
                   int w = var_get_width (var->members[i]);
-                  memcpy (val + offset, value_str (vals[i], w), w);
+                  u8_cpy (val + offset, value_str (vals[i], w), w);
                   offset += w;
                }
              else if (var_is_numeric (var->members[i]))