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