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