John Darrington [Sun, 31 Aug 2008 06:41:25 +0000 (14:41 +0800)]
Add n_missing argument to casereader_create_filter_missing
Add a new argument to casereader_create_filter_missing, which,
if non-null, receives the number of cases filtered out by the
new reader. Update all callers of this function.
John Darrington [Sun, 24 Aug 2008 05:22:02 +0000 (13:22 +0800)]
Fixed some issues calculating percentiles when missing values are involved.
Added an extra argument to order_stats_accumulate, to indicate which classes
of missing values should be excluded. Added an internal cumulative weight
counter, to ensure that the declared total weight agrees with that which is
encountered.
John Darrington [Sat, 23 Aug 2008 06:08:28 +0000 (14:08 +0800)]
Rewrote the EXAMINE command.
Made use of the new casegrouper construct instead of relying on hashes.
Rewrote the percentiles calculations so as not to require dynamically
allocating memory for all the data. Encapsulated many of the other statistics'
calculations, so as to have similar interfaces.
John Darrington [Fri, 5 Sep 2008 02:04:40 +0000 (10:04 +0800)]
Oops. Neglected to add new files.
Actually I'm *sure* that I did do "git add" on all these,
but for whatever reason git didn't check them in.
Hopefully it's right this time. One day I'll work out
how to use git effectively. One day ...
John Darrington [Thu, 4 Sep 2008 11:57:06 +0000 (19:57 +0800)]
Complete re-implementation of the EXAMINE command.
The implementation now avoids storing large amounts of data on the
heap. Instead it uses the casereader functionality and
the casegrouper structure instead of hashes to store group data.
Added documentation for the /ID subcommand which was missing.
Better encapsulated the calculation of boxplot data, extreme
values, histograms, NP plots and percentiles and others. Made
the start of a common base interface for statistic calculations.
Also updated the frequencies code to fit new interfaces.
John Darrington [Sat, 23 Aug 2008 00:44:32 +0000 (08:44 +0800)]
Work around bug #24033 (appending to output in cygwin).
Cygwin (and perhaps other w32 platforms) cannot write to a file
whilst it is open for reading. This kludge therefore closes the
output after pasting into the output viewer and re-opens when new
data is appended. It'll be slow if the output file becomes large.
Ben Pfaff [Sun, 27 Jul 2008 18:12:45 +0000 (11:12 -0700)]
Use standard C99 isfinite, isnan, isinf in place of GSL substitutes.
In change a9afcdd22, "Use gsl_isnan instead of isnan, ...," isfinite,
isnan, and isinf were changed to use the GSL substitutes because of
lack of portability of the C99 versions. Now, gnulib has portable
versions of all of these, so change them back.
This commit changes calls to gsl_finite() to call isfinite() instead
of the equivalent finite(). isfinite() is correct here: both gsl_finite()
and finite() return true for NaNs, which is a surprising result given
that a NaN is definitely not finite, but isfinite() returns false and,
more importantly, behaves as actually wanted in each place it is used
in PSPP code.
This commit requires upgrading gnulib to at least change 5183a0e3c,
"Add missing dependencies on new m4/exponent[fdl].m4 files," or later,
and re-running "make -f Smake".
Jason Stover [Sun, 22 Jun 2008 02:44:27 +0000 (22:44 -0400)]
Fixed bug 23567. Added accessor functions to get/set means and standard deviations for variables associated with struct coeffs. Fixed corresponding values in tests.
Ben Pfaff [Fri, 16 May 2008 05:35:09 +0000 (05:35 +0000)]
Use gsl_isnan instead of isnan, gsl_isinf instead of isinf, and
gsl_finite instead of finite, as a stopgap measure for portability
until appropriate gnulib modules are available.
Ben Pfaff [Fri, 16 May 2008 05:27:47 +0000 (05:27 +0000)]
* Smake (GNULIB_MODULES): Don't depend on memmem module, because
PSPP does not use memmem any longer. Use
unilbrk/ulc-width-linebreaks module instead of the linebreak
module, because the latter was split up into multiple modules and
that's the one we actually need.
* automake.mk: Make install-data-hook depend on yelp-check if the
GUI is configured.
* automake.mk: Rename install-data-hook to yelp-check and mark it
phony. This avoids an automake warning for duplicate
install-data-hook commands in doc/automake.mk and this file
(automake does not understand double-colon rules, since they are
not in POSIX).
Ben Pfaff [Wed, 7 May 2008 00:10:45 +0000 (00:10 +0000)]
(text_data_import_assistant): Allocate the struct import_assistant on
the heap instead of the stack, to make it easier for memory debuggers
such as Valgrind to point out use of its members after this function
returns.
Ben Pfaff [Wed, 7 May 2008 00:09:00 +0000 (00:09 +0000)]
(gtk_sheet_dispose): Set the sheet's entry_container and button
members to NULL after unref'ing them, so that a later call to
gtk_sheet_for_all will not try to dereference a dangling pointer.
Ben Pfaff [Mon, 17 Mar 2008 03:59:06 +0000 (03:59 +0000)]
Fix bug #22037.
* crosstabs.q (calc_general): Only the short string prefix of long
string variables are tabulated, so we must not copy or zero out
more data than that.