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