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