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