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