Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp
authorJohn Darrington <john@marilyn.intra>
Mon, 15 Sep 2008 10:05:04 +0000 (18:05 +0800)
committerJohn Darrington <john@marilyn.intra>
Mon, 15 Sep 2008 10:05:04 +0000 (18:05 +0800)
Conflicts:

po/en_GB.po

po/en_GB.po
src/language/stats/glm.q
src/math/linreg.c
src/math/linreg.h
src/ui/gui/data-editor.c

index b6911c934b81ea29e2ae2178088dc30fdb71ca16..0c13bd309b921cd8ce518e6ec58932fb1963d7d1 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PSPP 0.4.3\n"
 "Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2008-09-13 08:26+0800\n"
+"POT-Creation-Date: 2008-09-08 18:04+0800\n"
 "PO-Revision-Date: 2007-09-15 08:29+0800\n"
 "Last-Translator: John Darrington <john@darrington.wattle.id.au>\n"
 "Language-Team: John Darrington <john@darrington.wattle.id.au>\n"
@@ -976,28 +976,28 @@ msgstr ""
 msgid "An I/O error occurred writing system file \"%s\"."
 msgstr ""
 
-#: src/data/variable.c:225
+#: src/data/variable.c:209
 #, c-format
 msgid ""
 "Character `%c' (in %s) may not appear as the first character in a variable "
 "name."
 msgstr ""
 
-#: src/data/variable.c:237
+#: src/data/variable.c:221
 #, c-format
 msgid "Character `%c' (in %s) may not appear in a variable name."
 msgstr ""
 
-#: src/data/variable.c:265
+#: src/data/variable.c:249
 msgid "Variable name cannot be empty string."
 msgstr ""
 
-#: src/data/variable.c:271
+#: src/data/variable.c:255
 #, c-format
 msgid "Variable name %s exceeds %d-character limit."
 msgstr ""
 
-#: src/data/variable.c:279
+#: src/data/variable.c:263
 #, c-format
 msgid "`%s' may not be used as a variable name because it is a reserved word."
 msgstr ""
@@ -1873,8 +1873,7 @@ msgstr ""
 #: src/language/stats/crosstabs.q:1155 src/language/stats/crosstabs.q:1182
 #: src/language/stats/crosstabs.q:1202 src/language/stats/crosstabs.q:1224
 #: src/language/stats/examine.q:1948 src/language/stats/frequencies.q:1055
-#: src/language/stats/frequencies.q:1179 src/language/stats/reliability.q:569
-#: src/language/stats/reliability.q:580
+#: src/language/stats/frequencies.q:1179
 msgid "Value"
 msgstr ""
 
@@ -2638,8 +2637,7 @@ msgstr ""
 #: src/language/stats/crosstabs.q:1062 src/language/stats/crosstabs.q:1785
 #: src/language/stats/examine.q:1207 src/language/stats/frequencies.q:1132
 #: src/language/stats/oneway.q:306 src/language/stats/oneway.q:476
-#: src/language/stats/regression.q:309 src/language/stats/reliability.q:702
-#: src/ui/gui/crosstabs-dialog.c:59
+#: src/language/stats/regression.q:309 src/ui/gui/crosstabs-dialog.c:59
 msgid "Total"
 msgstr ""
 
@@ -2651,9 +2649,8 @@ msgstr ""
 #: src/language/stats/binomial.c:236 src/language/stats/crosstabs.q:872
 #: src/language/stats/examine.q:1280 src/language/stats/frequencies.q:1400
 #: src/language/stats/npar-summary.c:122 src/language/stats/oneway.q:391
-#: src/language/stats/reliability.q:705 src/language/stats/t-test.q:693
-#: src/language/stats/t-test.q:716 src/language/stats/t-test.q:850
-#: src/language/stats/t-test.q:1387
+#: src/language/stats/t-test.q:693 src/language/stats/t-test.q:716
+#: src/language/stats/t-test.q:850 src/language/stats/t-test.q:1387
 msgid "N"
 msgstr ""
 
@@ -2744,13 +2741,11 @@ msgid "Summary."
 msgstr ""
 
 #: src/language/stats/crosstabs.q:859 src/language/stats/examine.q:1268
-#: src/language/stats/reliability.q:693
 msgid "Cases"
 msgstr ""
 
 #: src/language/stats/crosstabs.q:860 src/language/stats/examine.q:1205
 #: src/language/stats/frequencies.q:1053 src/language/stats/frequencies.q:1401
-#: src/language/stats/reliability.q:696
 msgid "Valid"
 msgstr ""
 
@@ -3149,7 +3144,7 @@ msgstr ""
 msgid "%s and %s are mutually exclusive"
 msgstr ""
 
-#: src/language/stats/examine.q:1263 src/language/stats/reliability.q:670
+#: src/language/stats/examine.q:1263
 msgid "Case Processing Summary"
 msgstr ""
 
@@ -3651,83 +3646,6 @@ msgstr ""
 msgid "Dependent variable must be numeric."
 msgstr ""
 
-#: src/language/stats/reliability.q:426
-msgid "Reliability Statistics"
-msgstr ""
-
-#: src/language/stats/reliability.q:469
-msgid "Item-Total Statistics"
-msgstr ""
-
-#: src/language/stats/reliability.q:491
-msgid "Scale Mean if Item Deleted"
-msgstr ""
-
-#: src/language/stats/reliability.q:494
-msgid "Scale Variance if Item Deleted"
-msgstr ""
-
-#: src/language/stats/reliability.q:497
-msgid "Corrected Item-Total Correlation"
-msgstr ""
-
-#: src/language/stats/reliability.q:500
-msgid "Cronbach's Alpha if Item Deleted"
-msgstr ""
-
-#: src/language/stats/reliability.q:547 src/language/stats/reliability.q:563
-msgid "Cronbach's Alpha"
-msgstr ""
-
-#: src/language/stats/reliability.q:550
-msgid "N of items"
-msgstr ""
-
-#: src/language/stats/reliability.q:566
-msgid "Part 1"
-msgstr ""
-
-#: src/language/stats/reliability.q:572 src/language/stats/reliability.q:583
-msgid "N of Items"
-msgstr ""
-
-#: src/language/stats/reliability.q:577
-msgid "Part 2"
-msgstr ""
-
-#: src/language/stats/reliability.q:588
-msgid "Total N of Items"
-msgstr ""
-
-#: src/language/stats/reliability.q:591
-msgid "Correlation Between Forms"
-msgstr ""
-
-#: src/language/stats/reliability.q:595
-msgid "Spearman-Brown Coefficient"
-msgstr ""
-
-#: src/language/stats/reliability.q:598
-msgid "Equal Length"
-msgstr ""
-
-#: src/language/stats/reliability.q:601
-msgid "Unequal Length"
-msgstr ""
-
-#: src/language/stats/reliability.q:605
-msgid "Guttman Split-Half Coefficient"
-msgstr ""
-
-#: src/language/stats/reliability.q:699
-msgid "Excluded"
-msgstr ""
-
-#: src/language/stats/reliability.q:708
-#, c-format
-msgid "%%"
-msgstr ""
-
 #: src/language/stats/sort-cases.c:64
 msgid "Buffer limit must be at least 2."
 msgstr ""
index 1b91ba8166c389bb0e40bb002ac9bc984b0364e9..ad8bf55e9dfd5dfee172289eb099e42c8922ab22 100644 (file)
@@ -47,7 +47,7 @@
 #include "xalloc.h"
 #include "gettext.h"
 
-#define GLM_LARGE_DATA 1000
+#define GLM_LARGE_DATA 10000
 
 /* (headers) */
 
@@ -339,6 +339,17 @@ run_glm (struct casereader *input,
                }
            }
        }
+      model = pspp_linreg_cache_alloc (n_data, n_indep);
+      model->depvar = v_dependent;
+      /*
+       For large data sets, use QR decomposition.
+      */
+      if (n_data > sqrt (n_indep) && n_data > GLM_LARGE_DATA)
+       {
+         model->method = PSPP_LINREG_QR;
+       }
+      coeff_init (model, X);
+      pspp_linreg_with_cov (X, model);
       casereader_destroy (reader);
       for (i = 0; i < n_all_vars; i++)
        {
@@ -357,6 +368,7 @@ run_glm (struct casereader *input,
     }
   free (indep_vars);
   free (lopts.get_indep_mean_std);
+  pspp_linreg_cache_free (model);
   casereader_destroy (input);
 
   return true;
index 2fb98cf76822d020c4369d31acdf8ce0a91b1457..355261b6ea15d2eb2f86d44503f9bb1f258f5b40 100644 (file)
@@ -96,7 +96,7 @@ linreg_mean_std (gsl_vector_const_view v, double *mp, double *sp, double *ssp)
   The return value is the number of distinct variables found.
  */
 int
-pspp_linreg_get_vars (const void *c_, const struct variable **v)
+pspp_linreg_get_vars (const void *c_, struct variable **v)
 {
   const pspp_linreg_cache *c = c_;
   const struct variable *tmp;
@@ -666,7 +666,7 @@ rearrange_covariance_matrix (const struct design_matrix *cov, pspp_linreg_cache
   v = xnmalloc (c->n_coeffs, sizeof (*v));
   model_vars = xnmalloc (c->n_coeffs, sizeof (*model_vars));
   columns = xnmalloc (cov->m->size2, sizeof (*columns));
-  n_vars = pspp_linreg_get_vars (c, (const struct variable **) v);
+  n_vars = pspp_linreg_get_vars (c, v);
   dep_col = 0;
   k = 0;
   for (i = 0; i < cov->m->size2; i++)
@@ -731,7 +731,7 @@ pspp_linreg_with_cov (const struct design_matrix *full_cov,
 {
   struct design_matrix *cov;
 
-  assert (cov != NULL);
+  assert (full_cov != NULL);
   assert (cache != NULL);
 
   cov = rearrange_covariance_matrix (full_cov, cache);
index 05c8159630d8aa8da3467148a72e6d7a2da95218..18f962c06046b1af232af22b656d231722bcbd65 100644 (file)
@@ -197,7 +197,7 @@ pspp_linreg_residual (const struct variable **, const union value **,
 /*
   All variables used in the model.
  */
-int pspp_linreg_get_vars (const void *, const struct variable **);
+int pspp_linreg_get_vars (const void *, struct variable **);
 
 struct pspp_coeff *pspp_linreg_get_coeff (const pspp_linreg_cache
                                                       *,
index 9ca7511e17d8eaf1dde47ab63b1cdd403fbf35b3..f7df21c752e746bec52f647f672db0082e387fba 100644 (file)
@@ -1375,6 +1375,11 @@ data_save_as_dialog (GtkAction *action, struct data_editor *de)
        de->save_as_portable =
          ! gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button_sys));
 
+       if ( de->save_as_portable)
+         append_filename_suffix (de, ".por");
+       else
+         append_filename_suffix (de, ".sav");
+
        save_file (de);
 
        window_set_name_from_filename (e, de->file_name);