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