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