Removed use of coefficient 0 as intercept; removed subcommand EXPORT.
[pspp-builds.git] / src / language / stats / ChangeLog
1 2008-03-10  Jason Stover  <jhs@debs.hoobahooba.net>
2
3         * regression.q (run_regression): Removed code for EXPORT
4         subcommand. Remove use of coefficient 0 as the intercept.
5
6 2008-02-14  John Darrington <john@darrington.wattle.id.au>
7
8         * examine.q: Fixed counts of missing variables.  Thanks to 
9         Jason Stover for reporting this problem.
10
11 2008-01-02  John Darrington <john@darrington.wattle.id.au>
12
13         *  binomial.c chisquare.c examine.q frequencies.q oneway.q regression.q : updated
14         all users of var_get_value_name to use replacement function var_append_value_name.
15
16 2007-12-07  Ben Pfaff  <blp@gnu.org>
17
18         Patch #6302.
19
20         * crosstabs.q (precalc): Initialize data structures even if the
21         first case cannot be read.  
22
23         * frequencies.q (precalc): Ditto.
24
25 2007-11-03  Ben Pfaff  <blp@gnu.org>
26
27         Allow output files to overwrite input files (bug #21280).
28
29         * aggregate.c (cmd_aggregate): Manage file handle reference
30         counts.
31
32         * correlations.q (internal_cmd_frequencies): Ditto.
33         (cor_custom_matrix): Ditto.
34
35         * regression.q (regression_custom_export): Ditto.
36         (cmd_regression): Ditto.
37
38 2007-10-12  Ben Pfaff  <blp@gnu.org>
39
40         * flip.c (flip_file): No need to conditionally substitute for
41         "fseeko" and "off_t" manually anymore, as gnulib takes care of it
42         for us.
43
44 2007-09-21  Jason Stover  <jhs@wonko.gcsu.edu>
45
46         * regression.q (run_regression): Partial fix of memory leak, bug
47         21056.
48
49 2007-09-19  Ben Pfaff  <blp@gnu.org>
50
51         Fix bug #21108.
52         
53         * aggregate.c (cmd_aggregate): Destroy casereader consistently,
54         even if casereader fails.
55
56         * examine.q (run_examine): Ditto.
57          
58         * glm.q (run_glm): Ditto.
59
60         * oneway.q (run_oneway): Ditto.
61
62         * regression.q (run_regression): Ditto.
63
64         * t-test.q (calculate): Ditto.
65
66         * descriptives.c (calc_descriptives): Ditto.  Also avoid
67         gratuitous casereader_clone.
68
69 2007-09-13  Jason Stover  <jhs@debs.hoobahooba.net>
70
71         * regression.q (cmd_regression): Move declaration of models in to
72         definition of cmd_regression.
73
74         * regression.q (run_regression): Free mom to fix memory leak.
75
76 2007-09-12  Ben Pfaff  <blp@gnu.org>
77
78         * crosstabs.q (postcalc): Free sorted_tab and the structures that
79         it points to, to plug a memory leak.  Fixes bug #20910.  Thanks to
80         John Darrington for reporting this bug and for review.
81
82 2007-09-04  Ben Pfaff  <blp@gnu.org>
83
84         * crosstabs.q (cmd_crosstabs): Free xtab and the structures that
85         it points to, to plug a memory leak.  Fixes bug #18315.
86
87 2007-08-15  Jason Stover  <jhs@wonko.gcsu.edu>
88
89         * regression.q (identify_indep_vars): Print an error if dependent
90         and independent variables are the same. Fixes bug 19819.
91
92 2007-08-12  Ben Pfaff  <blp@gnu.org>
93
94         * flip.c: Drop use of dict_get_compacted_dict_index_to_case_index
95         and just use the ordinary case indexes.  There seemed to be no
96         reason for the former method.
97
98 2007-08-03  Ben Pfaff  <blp@gnu.org>
99
100         * rank.q (rank_cmd): Instead of sorting by SPLIT FILE vars, group
101         by them.  Fixes bug #17239.
102         Reviewed by John Darrington.
103
104 2007-08-01  Ben Pfaff  <blp@gnu.org>
105
106         Clean up handling of median, by treating it almost like any other
107         percentile.  Fixes bug #17424.  Thanks to John Darrington for
108         review.
109         * frequencies.q (internal_cmd_frequencies): Fix handling of bit
110         masks for `stats' variable.  If median is selected, turn it off
111         and add a 50th percentile.
112         (add_percentile): Simplify code a little.
113         (calc_stats): Drop special casing of median.
114         (dump_statistics): Ditto, except that we label the 50th percentile
115         as "50 (Median)" to make it clear that it's also the median.    
116
117 2007-07-31  Ben Pfaff  <blp@gnu.org>
118
119         Remove integer mode from FREQUENCIES and incidentally fix bug
120         #17421.  Reviewed by John Darrington.
121         * frequencies.q (int_pool): Rename data_pool.
122         (gen_pool): Rename syntax_pool.
123         (enum FRQM_*): Removed.
124         (struct freq_tab): Removed `mode', `vector', `min', `max',
125         `out_of_range', `sysmis' members.
126         (calc): Delete support for integer mode.
127         (precalc): Ditto.
128         (postprocess_freq_tab): Ditto.
129         (cleanup_freq_tab): Ditto.
130         (frq_custom_variables): Ditto.
131
132 2007-07-28 John Darrington <john@darrington.wattle.id.au>
133
134         * t-test.q: Moved the order in which groups are displayed in the 
135         independent samples case, where a cut point is given.
136
137 2007-07-27  Ben Pfaff  <blp@gnu.org>
138
139         * regression.q (run_regression): Move casereader_destroy call so
140         that it always gets called, not just if there was some valid
141         data.  Fixes bug #19581.
142         Reviewed by Jason Stover.
143
144 2007-07-24  Ben Pfaff  <blp@gnu.org>
145
146         * flip.c (struct flip_pgm): Remove `case_size' member (now
147         unused).
148         (cmd_flip): Pass var_cnt as number of cases instead of case_cnt,
149         to fix bug #20494.  Don't assign to `case_size' member, which was
150         unused after assignment.
151         (build_dictionary): When NEWNAMES not used, get the number of
152         variables right, to fix bug #20493.
153
154 2007-07-10  Jason Stover  <jhs@math.gcsu.edu>
155
156         * glm.q: Initial version of the GLM procedure.
157
158 2007-06-06  Ben Pfaff  <blp@gnu.org>
159
160         Adapt case sources, sinks, and clients of procedure code to the
161         new infrastructure.
162         
163         * aggregate.c: Simplify greatly since everything is more uniform
164         now.
165
166         * autorecode.c: Adapt to new procedure code.
167         * binomial.c: Ditto.
168         * chisquare.c: Ditto.
169         * crosstabs.q: Ditto.
170         * descriptives.c: Ditto.
171         * examine.q: Ditto.
172         * npar-summary.c: Ditto.
173         * frequencies.q: Ditto.
174         * npar.q: Ditto.
175         * oneway.q: Ditto.
176         * regression.q: Ditto.
177         * sort-cases.c: Ditto.
178         * t-test.c: Ditto.
179
180         * sort-criteria.c: Rewrite to output a struct case_ordering.
181         
182         * flip.c: Rewrite to be a casereader.
183
184         * rank.q: Simplify greatly since casereaders are much more
185         flexible than what we had before.
186         
187 2007-05-15  Jason Stover  <jhs@math.gcsu.edu>
188
189         * regression.q (run_regression): Tell the user when the data
190         contain no valid cases.
191
192 2007-05-08  Jason Stover  <jhs@math.gcsu.edu>
193
194         * regression.q: Partial fix of bug which caused a crash if
195         dependent variable and independent variable were the same.
196
197 2007-04-16 John Darrington <john@darrington.wattle.id.au>
198
199         * t-test.q: Changed the output width of reported counts and 
200         degrees of freedom, to avoid truncating these values.  Thanks
201         to Seth Woolley for reporting this problem.  A proper fix involves
202         re-thinking the output driver.
203
204 2007-04-12  Jason Stover  <jhs@math.gcsu.edu>
205
206         * regression.q (run_regression): Added if (n_data >0) to fix bug
207         19581.
208
209 2007-03-29  Jason Stover  <jhs@math.gcsu.edu>
210
211         * regression.q (prepare_data): New function.
212
213         * regression.q (compute_moments): New function.
214
215 2007-03-18  Ben Pfaff  <blp@gnu.org>
216
217         * crosstabs.q (static var write): Rename write_style to avoid
218         conflict with POSIX function of same name.
219
220 2007-03-16  Jason Stover  <jhs@math.gcsu.edu>
221
222         * regression.q (run_regression): Added support for moments.
223
224 Sat Feb 17 08:16:00 2007  Ben Pfaff  <blp@gnu.org>
225
226         * flip.c (flip_sink_create): Improve error message when temporary
227         file cannot be created.
228
229 Tue Feb  6 19:58:03 2007  Ben Pfaff  <blp@gnu.org>
230
231         * flip.c (flip_file): Give better error message on end-of-file.
232
233 2007-02-04  Jason Stover  <jhs@math.gcsu.edu>
234
235         * regression.q: Fixed p-value computation in the test for
236         individual regression coefficients.
237
238 Mon Jan 15 11:03:20 2007  Ben Pfaff  <blp@gnu.org>
239
240         Fix bugs found by valgrind when --enable-debug is used with the
241         new case code.  These bugs are hidden when the data set is small
242         enough to find in memory; if a bigger data set that would overflow
243         to disk were used, then data corruption would occur.
244
245         * chisquare.c (create_freq_hash): Pass free_freq_mutable_hash to
246         hsh_create as free function.  Make copy of data put into hash.
247
248         * oneway.q (free_value): New function.
249         (run_oneway): Use free_value as arg to hsh_create.  Make copy of
250         data put into hash.
251
252         * rank.q (rank_cases): Don't access data in case after we've given
253         away the case.
254
255 Tue Jan  9 19:16:11 2007  Ben Pfaff  <blp@gnu.org>
256
257         Fix bug #18739.
258         
259         * aggregate.c (parse_aggregate_functions) Initialize
260         function_name.
261
262 Fri Dec 22 14:04:09 2006  Ben Pfaff  <blp@gnu.org>
263
264         Simplify missing value handling.
265         
266         * aggregate.c (struct agr_var): Remove `bool include_missing', add
267         `enum mv_class exclude'.  Remove `int missing', add `bool
268         saw_missing'.  Update users.
269
270         * descriptives.c (struct dsc_trns): Removed `int
271         include_user_missing', add `enum mv_class exclude'.  Update users.
272         (struct dsc_proc): Ditto.
273
274         * examine.q: (static var value_is_missing): Rename
275         `exclude_values', change type to `enum mv_class'.  Update users.
276
277         * rank.q: Ditto.
278
279 Fri Dec 22 19:22:18 WST 2006 John Darrington <john@darrington.wattle.id.au>
280
281         * frequencies.q : Fixed bug #17420, where the table bounds were overun
282         when /FORMAT=nolabels was given.
283
284 Wed Dec 20 18:45:31 WST 2006 John Darrington <john@darrington.wattle.id.au>
285
286         * binomial.c binomial.h : New files.  Thanks to Jason Stover 
287           for assistance with these.
288
289         * chisquare.c chisquare.h freq.c freq.h npar-summary.c npar-summary.h 
290           npar.h npar.q: New files.  Implementing NPAR TESTS.
291
292         * frequencies.q  : Moved  structure definitions into freq.[ch]
293
294 Sat Dec 16 22:26:44 2006  Ben Pfaff  <blp@gnu.org>
295
296         Make it possible to pull cases from the active file with a
297         function call, instead of requiring indirection through a callback
298         function.
299
300         * aggregate.c (cmd_aggregate): Take advantage of new procedure
301         interface.
302         (agr_to_active_file): Removed.
303         (presorted_agr_to_sysfile): Removed.
304
305         * autorecode.c (cmd_autorecode): Take advantage of new procedure
306         interface.
307         (autorecode_proc_func): Removed.
308
309         * flip.c (struct flip_pgm): New members to allow conformance with
310         new case_source_class interface.
311         (cmd_flip): Adapt to new case_source_class interface.
312         (flip_source_read): Ditto.
313         (flip_source_destroy): Ditto.
314
315 Sat Dec 16 12:54:27 2006  Ben Pfaff  <blp@gnu.org>
316
317         * rank.q (rank_custom_variables): Allow grouping variables to be
318         strings.  Fixes bug #18533.  Thanks to John Darrington for review.
319
320 Sat Dec  9 18:47:51 2006  Ben Pfaff  <blp@gnu.org>
321
322         * regression.q (is_depvar): Compare variable pointers instead of
323         variable names.
324
325 Thu Dec  7 15:26:25 WST 2006 John Darrington <john@darrington.wattle.id.au>
326
327         * examine.q: Allocated the categorical values for the dependent and 
328         independent variables, on the heap.  Hence they can be of any width.
329
330 Wed Dec  6 21:14:26 2006  Ben Pfaff  <blp@gnu.org>
331
332         * regression.q (reg_inserted): Compare variable pointers instead
333         of variable indexes.
334
335 Mon Dec  4 22:33:46 2006  Ben Pfaff  <blp@gnu.org>
336
337         * crosstabs.q (insert_summary): Use var_to_string for labeling.
338         (output_pivot_table) Ditto.
339         (submit) Ditto.
340
341         * frequencies.q (setup_z_trns): Ditto.
342         (dump_full) Ditto.
343         (dump_condensed) Ditto.
344         (dump_statistics) Ditto.
345         
346
347 Sun Nov  5 08:31:42 WST 2006 John Darrington <john@darrington.wattle.id.au>
348
349         * t-test.q, oneway.q: Changed to use the new casefilter structure.
350
351 Sat Oct 14 16:52:28 2006  Ben Pfaff  <blp@gnu.org>
352
353         * rank.q: (rank_sorted_casefile) Add some missing case_destroy()
354         calls to fix a memory leak.
355
356 Sun Oct  8 09:45:40 WST 2006 John Darrington <john@darrington.wattle.id.au>
357
358         * rank.q: Plugged a small memory leak which occurred under error
359         conditions.
360         
361 Sat Oct  7 11:06:01 WST 2006 John Darrington <john@darrington.wattle.id.au>
362
363         * rank.q: Implemented most of the RANK command.
364
365 2006-07-14  Jason Stover  <jhs@math.gcsu.edu>
366
367         * regression.q (run_regression): New function to move knowledge of
368         pspp_linreg_cache out of math/coefficient.[ch].
369
370 Sat Jul  1 17:41:46 2006  Ben Pfaff  <blp@gnu.org>
371
372         Fix bug #11612, "q2c documentation does not agree with code".
373         
374         * examine.q: Audit use of q2c "+" prefixes that indicate that a
375         command may appear multiple times.
376
377         * frequencies.q: Ditto.
378
379         * oneway.q: Ditto.
380
381         * regression.q: Ditto.
382
383         * t-test.q: Ditto.
384
385 Fri Jun 23 14:18:22 2006  Ben Pfaff  <blp@gnu.org>
386
387         Support long string variables on FREQUENCIES, as
388         an extension when in enhanced algorithms mode.  For Greg Hunt
389         <greg@firmansyah.com>.
390         
391         * frequencies.q: (struct freq) Change `v' member from union value
392         to union value *.  Update all references.
393         (struct var_freqs) Add width, print members to represent effective
394         variable width and display format.
395         (calc) Copy entire long string value into the hash table.
396         (frq_custom_variables) Set new width, print members.
397         (hash_value_alpha) Get width from var_freqs.
398         (compare_value_alpha_a) Ditto.
399         (compare_freq_alpha_a) Ditto.
400         (compare_freq_alpha_d) Ditto.
401         (dump_full) Get display format from var_freqs.
402         (dump_condensed) Ditto.
403
404 Mon Jun 19 22:07:13 2006  Ben Pfaff  <blp@gnu.org>
405
406         * frequencies.q: (dump_full) Only put the first MAX_SHORT_STRING
407         bytes of string variables into the output cells, seeing as we only
408         copy that many.
409         (dump_condensed) Ditto.
410
411 Mon Jun 19 21:52:05 2006  Ben Pfaff  <blp@gnu.org>
412
413         Fixes a bug reported by Greg Hunt <greg@firmansyah.com>.
414         
415         * frequencies.q: (hsh_hash_bytes) We only copy the first
416         MAX_SHORT_STRING bytes of string variables, so we must only
417         compare that many bytes, even if the string variable is longer.
418         (compare_value_alpha_a) Ditto.
419         (compare_freq_alpha_a) Ditto.
420         (compare_freq_alpha_d) Ditto.
421
422 2006-05-11  Jason Stover  <jhs@math.gcsu.edu>
423
424         * regression.q: Adjusted code to account for cache->coeff being a
425         pspp_linreg_coeff **.
426
427 Sun May  7 18:31:25 2006  Ben Pfaff  <blp@gnu.org>
428
429         Fix memory leak.
430         
431         * aggregate.c (cmd_aggregate): Free default_dict before replacing
432         it.
433
434 Sun May  7 17:09:19 2006  Ben Pfaff  <blp@gnu.org>
435
436         * flip.c (flip_file): Check return value of pool_fclose().
437
438 Sat May  6 16:00:13 2006  Ben Pfaff  <blp@gnu.org>
439
440         Get rid of `char *c' member in union value, for cleanliness.
441         
442         * aggregate.c: (union agr_argument) New union.
443         (struct agr_var) Change element type of arg[] from union value to
444         union agr_argument.
445         (parse_aggregate_functions) Change local variable types likewise.
446
447         * autorecode.c: (union arc_value) New union.
448         (struct arc_item) Change "from" from union value to union
449         arc_value.
450         (recode) Change local variable from union value to union
451         arc_value.
452         (autorecode_trns_proc) Ditto.
453         (compare_alpha_value) Ditto.
454         (hash_alpha_value) Ditto.
455         (compare_numeric_value) Ditto.
456         (hash_numeric_value) Ditto.
457         (autorecode_proc_func) Ditto.
458
459 Sat May  6 10:43:33 2006  Ben Pfaff  <blp@gnu.org>
460
461         Continue reforming procedure execution.  In this phase, get rid of
462         the output code for SPLIT FILE groups in procedure.c, which really
463         shouldn't be doing any output.  Move it into the individual
464         procedures instead.  This also adds some flexibility.
465
466         * crosstabs.q (precalc): Call output_split_file_values().
467
468         * descriptives.c (calc_descriptives): Ditto.
469
470         * examine.q (run_examine): Ditto.
471         
472         * frequencies.q (precalc): Ditto.
473
474         * oneway.q (run_oneway): Ditto.
475
476         * regression.q (run_regression): Ditto.
477
478         * t-test.q (calculate): Ditto.
479
480 Wed May  3 23:05:31 2006  Ben Pfaff  <blp@gnu.org>
481
482         Continue reforming procedure execution.  In this phase, get rid of
483         many global variables, consolidating procedure execution in
484         procedure.c.  Encapsulate transformations in new "struct
485         trns_chain".  Also, change implementation of N OF CASES, FILTER,
486         and PROCESS IF from special cases to transformations.
487          
488         * aggregate.c (cmd_aggregate) Use discard_variables().
489         
490 2006-04-28  Jason Stover  <jhs@math.gcsu.edu>
491
492         * regression.q (regression_trns_resid_proc): Pass only the
493         variables used in the model to (*model->residual)().
494
495         * regression.q (regression_trns_pred_proc): Pass only the
496         variables used in the model to (*model->pred)().
497
498 2006-04-26  Jason Stover  <jhs@math.gcsu.edu>
499
500         * regression.q: Added support for multiple transformations.
501         
502         * regression.q (regression_trns_resid_proc): New function.
503
504         * regression.q (regression_trns_pred_proc): New function.
505
506         * regression.q (subcommand_save): Added support for saving
507         predicted values.
508
509         * regression.q (regression_trns_free): New function. 
510
511         * regression.q (reg_get_name): New function.
512
513         * regression.q (reg_save_var): New function.
514
515 Tue Apr 25 13:18:56 2006  Ben Pfaff  <blp@gnu.org>
516
517         * rank.q (parse_rank_function): Use SE instead of ME for parse
518         errors.
519
520 Tue Apr 25 13:16:28 2006  Ben Pfaff  <blp@gnu.org>
521
522         * flip.c (flip_sink_write): Use snprintf() to simplify a bit of
523         code.
524
525 2006-04-21  Jason Stover  <jhs@math.gcsu.edu>
526
527         * regression.q (try_name): New function. (Partly copied from
528         try_name in descriptives.c.)
529
530         * regression.q (subcommand_save): Choose residual variable names
531         correctly. 
532
533 2006-04-20  Jason Stover  <jhs@math.gcsu.edu>
534
535         * regression.q (cmd_regression): Moved call to subcommand_save()
536         outside multipass_procedure_with_splits().
537         
538         * regression.q (regression_trns_proc): Fixed value counter n_vals
539         before calling *model->residual().
540
541 2006-04-19  Jason Stover  <jhs@math.gcsu.edu>
542
543         * regression.q (regression_trns_proc): Fixed the look-up of the
544         number of variables.
545
546 2006-04-18  Jason Stover  <jhs@math.gcsu.edu>
547
548         * regression.q (regression_trns_proc): Look up the residual
549         variable in the linear regression cache.
550
551         * regression.q (subcommand_save): Set the residual variable in the
552         linear regression cache.
553
554 2006-04-17  Jason Stover  <jason@wonko.gcsu.edu>
555
556         * regression.q (regression_trns_proc): Accept case_idx as an int
557         to match the definition of trns_proc_func.
558
559 2006-04-17  Jason Stover  <jhs@math.gcsu.edu>
560
561         * regression.q (regression_trns_proc): New function.
562
563         * regression.q (subcommand_save): Create variable residuals and
564         add a transformation to assign values to them. Also free the
565         linreg_cache if the SAVE command was not called. Removed the
566         casereading loop. Placed actual computation of residuals in
567         regression_trns_proc.
568
569         * regression.q (run_regression): Moved call to free
570         pspp_linreg_cache to subcommand_save.
571
572 Sat Apr 15 18:01:03 2006  Ben Pfaff  <blp@gnu.org>
573
574         * examine.q (output_examine): Add casts to fix warnings.
575
576 2006-04-07  Jason Stover  <jhs@math.gcsu.edu>
577
578         * regression.q (subcommand_save): New function.
579
580 2006-04-04  Jason Stover  <jhs@math.gcsu.edu>
581
582         * regression.q: New function reg_has_categorical () to tell
583         whether a pspp_linreg_struct was made with any variables of type
584         ALPHA.
585
586         * regression.q: (subcommand_export): Call
587         reg_print_categorical_encoding() only if the model uses any
588         categorical variables.
589
590 Mon Mar 27 16:00:42 2006  Ben Pfaff  <blp@gnu.org>
591
592         * crosstabs.q: (output_pivot_table) Drop spurious space from
593         message.
594
595 2006-03-15  Jason Stover  <jhs@math.gcsu.edu>
596
597         * regression.q: Added custom syntax parser for VARIABLES subcommand
598
599         * regression.q: Moved most instructions for run_regression ()
600         inside the loop over dependent variables.
601
602 Thu Mar  2 08:40:33 WST 2006 John Darrington <john@darrington.wattle.id.au>
603         
604         * Moved files from src directory