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