Change license from GPLv2+ to GPLv3+.
[pspp-builds.git] / src / language / stats / regression.q
index 690b6809aacda290c88d4175c177113d60c6396f..869f32a716ee0c719fc7e247f40f6015b58f285f 100644 (file)
@@ -1,20 +1,18 @@
-/* PSPP - linear regression.
+/* 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 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 <http://www.gnu.org/licenses/>. */
 
 #include <config.h>
 
@@ -119,14 +117,14 @@ static size_t n_variables;
 
 /*
   File where the model will be saved if the EXPORT subcommand
-  is given. 
+  is given.
  */
 static struct file_handle *model_file;
 
 static bool run_regression (struct casereader *, struct cmd_regression *,
                             struct dataset *);
 
-/* 
+/*
    STATISTICS subcommand output functions.
  */
 static void reg_stats_r (pspp_linreg_cache *);
@@ -454,8 +452,8 @@ statistics_keyword_output (void (*function) (pspp_linreg_cache *),
 static void
 subcommand_statistics (int *keywords, pspp_linreg_cache * c)
 {
-  /* 
-     The order here must match the order in which the STATISTICS 
+  /*
+     The order here must match the order in which the STATISTICS
      keywords appear in the specification section above.
    */
   enum
@@ -628,7 +626,7 @@ regression_trns_resid_proc (void *t_, struct ccase *c,
   return TRNS_CONTINUE;
 }
 
-/* 
+/*
    Returns false if NAME is a duplicate of any existing variable name.
 */
 static bool
@@ -1014,7 +1012,7 @@ regression_custom_variables (struct lexer *lexer, struct dataset *ds,
 /* Identify the explanatory variables in v_variables.  Returns
    the number of independent variables. */
 static int
-identify_indep_vars (struct variable **indep_vars, struct variable *depvar)
+identify_indep_vars (const struct variable **indep_vars, const struct variable *depvar)
 {
   int n_indep_vars = 0;
   int i;
@@ -1030,7 +1028,7 @@ identify_indep_vars (struct variable **indep_vars, struct variable *depvar)
    Returns number of valid cases. */
 static int
 prepare_categories (struct casereader *input,
-                    struct variable **vars, size_t n_vars,
+                    const struct variable **vars, size_t n_vars,
                     struct moments_var *mom)
 {
   int n_data;
@@ -1042,7 +1040,7 @@ prepare_categories (struct casereader *input,
       cat_stored_values_create (vars[i]);
 
   n_data = 0;
-  for (; casereader_read (input, &c); case_destroy (&c)) 
+  for (; casereader_read (input, &c); case_destroy (&c))
     {
       /*
        The second condition ensures the program will run even if
@@ -1052,12 +1050,12 @@ prepare_categories (struct casereader *input,
       for (i = 0; i < n_vars; i++)
         {
           const union value *val = case_data (&c, vars[i]);
-          if (var_is_alpha (vars[i])) 
-            cat_value_update (vars[i], val); 
+          if (var_is_alpha (vars[i]))
+            cat_value_update (vars[i], val);
           else
             moments1_add (mom[i].m, val->f, 1.0);
         }
-      n_data++; 
+      n_data++;
    }
   casereader_destroy (input);
 
@@ -1156,12 +1154,12 @@ run_regression (struct casereader *input, struct cmd_regression *cmd,
 
   for (k = 0; k < cmd->n_dependent; k++)
     {
-      struct variable *dep_var;
+      const struct variable *dep_var;
       struct casereader *reader;
       casenumber row;
       struct ccase c;
       size_t n_data;           /* Number of valid cases. */
-      
+
       dep_var = cmd->v_dependent[k];
       n_indep = identify_indep_vars (indep_vars, dep_var);
 
@@ -1204,7 +1202,7 @@ run_regression (struct casereader *input, struct cmd_regression *cmd,
             {
               for (i = 0; i < n_indep; ++i)
                 {
-                  struct variable *v = indep_vars[i];
+                  const struct variable *v = indep_vars[i];
                   const union value *val = case_data (&c, v);
                   if (var_is_alpha (v))
                     design_matrix_set_categorical (X, row, v, val);
@@ -1221,7 +1219,7 @@ run_regression (struct casereader *input, struct cmd_regression *cmd,
           */
          coeff_init (models[k], X);
 
-         /* 
+         /*
             Find the least-squares estimates and other statistics.
           */
          pspp_linreg ((const gsl_vector *) Y, X->m, &lopts, models[k]);
@@ -1230,7 +1228,7 @@ run_regression (struct casereader *input, struct cmd_regression *cmd,
           if (!taint_has_tainted_successor (casereader_get_taint (input)))
             {
               subcommand_statistics (cmd->a_statistics, models[k]);
-              subcommand_export (cmd->sbc_export, models[k]); 
+              subcommand_export (cmd->sbc_export, models[k]);
             }
 
          gsl_vector_free (Y);
@@ -1249,7 +1247,7 @@ run_regression (struct casereader *input, struct cmd_regression *cmd,
 }
 
 /*
-  Local Variables:   
+  Local Variables:
   mode: c
   End:
 */