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