Ben Pfaff [Sun, 30 Nov 2008 23:23:20 +0000 (15:23 -0800)]
Replace case_ordering with subcase.
The case_ordering data structure was useful for comparing cases,
but that is all that it did. In fact, the same data structure
can be used, at least, for extracting data from cases into arrays
of values, stuffing values back into cases, and for more general
comparisons than case_ordering anticipated.
This commit adds those abilities to case_ordering. It also renames
it to "subcase", because it is useful for more than just sorting
cases, which is all that case_ordering was designed for.
This commit also changes the allocation pattern for subcase from
having the implementation allocate all of the memory, to having
the subcase client allocate "struct subcase". This saves a
memory allocation without making life harder for anyone.
- Naming: the "case_ordering" name implied that it was
only useful for ordering (comparing cases).
- Interface: the interface
Ben Pfaff [Sun, 12 Oct 2008 22:04:09 +0000 (15:04 -0700)]
Break get.c up into multiple files in a logical fashion.
get.c implemented GET, IMPORT, SAVE, XSAVE, EXPORT, XEXPORT,
and MATCH FILES, which seems like too much for one file.
Ben Pfaff [Wed, 29 Oct 2008 13:33:56 +0000 (06:33 -0700)]
Allow MATCH FILES before an active file has been defined.
Except when it has the active file as an input, MATCH FILES does
not require an active file, and produces an active file, so it
makes sense to allow it anywhere.
Thanks to John Darrington for pointing out the bug.
Ben Pfaff [Sun, 30 Nov 2008 23:26:43 +0000 (15:26 -0800)]
Rename compare_values, hash_values with "_short" suffix.
The compare_values and hash_values functions do not compare an
entire value. Rather, they compare only the short string prefix
of long string values. I have a feeling that this misnaming was
confusing people (it certainly confused me) so this commit renames
them.
It also adds a new function value_compare_3way() that does what
one what expect such a function to do.
John Darrington [Mon, 1 Dec 2008 12:50:16 +0000 (21:50 +0900)]
Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp
Ben Pfaff [Tue, 25 Nov 2008 06:12:01 +0000 (22:12 -0800)]
Fix memory leak in get_system_decimal().
Ben Pfaff [Wed, 29 Oct 2008 13:32:04 +0000 (06:32 -0700)]
Add PKG_CHECK_MODULES to forbidden m4 patterns.
This should help to catch running autoconf on systems that lack
pkg-config earlier in the build process.
John Darrington [Sun, 30 Nov 2008 05:46:24 +0000 (14:46 +0900)]
Add mutual links to VARIABLE/DATAFILE ATTRIBUTE documentation
John Darrington [Sat, 29 Nov 2008 03:03:13 +0000 (12:03 +0900)]
Make close button grab the focus on popup
John Darrington [Sat, 29 Nov 2008 01:37:20 +0000 (10:37 +0900)]
Improve useability of value label dialog.
Make the value entry widget grab the keyboard focus whenever
the dialog is updated, and on showing the dialog. Fixes
bug #24929
Jason H Stover [Fri, 21 Nov 2008 15:48:57 +0000 (10:48 -0500)]
pspp_linreg_with_cov: Accept struct covariance_matrix as first argument.
rearrange_covariance_matrix: Accept struct covariance_matrix as
first argument.
John Darrington [Tue, 11 Nov 2008 12:00:58 +0000 (21:00 +0900)]
Made some gui functions multi-head safe.
John Darrington [Sat, 8 Nov 2008 23:35:12 +0000 (08:35 +0900)]
Fail more gracefully when the file specified on the command line is
neither system nor portable file.
John Darrington [Sat, 8 Nov 2008 23:26:40 +0000 (08:26 +0900)]
Fixed problems when configured with --without-libplot
John Darrington [Sat, 8 Nov 2008 09:22:12 +0000 (18:22 +0900)]
Don't canonicalise pathnames of included files.
Fixes bug #24553
John Darrington [Sat, 8 Nov 2008 04:25:31 +0000 (13:25 +0900)]
Corrected problem with mismatched linefeed characters.
John Darrington [Sat, 8 Nov 2008 03:50:39 +0000 (12:50 +0900)]
Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp
John Darrington [Sat, 8 Nov 2008 03:49:58 +0000 (12:49 +0900)]
Updated British translations.
John Darrington [Sat, 8 Nov 2008 03:44:56 +0000 (12:44 +0900)]
Rewrote the command line parser using argp.
Reimplemented the command line parser using argp.
Removed some unimplemented options and added the ability
for the gui to open system or portable files whose names
are specified on the command line.
Jason H Stover [Thu, 6 Nov 2008 15:45:40 +0000 (10:45 -0500)]
covariance-matrix.c: Added one-pass algorithm to compute covariance
matrices. New structure covariance_matrix contains the covariance
matrix, related data and member functions. Added different routines to
handle pairwise or listwise deletion of missing values. Added many
new functions.
glm.q: Changed run_glm to use the new interface to the covariance
matrix. Removed unused function data_pass_one().
John Darrington [Sat, 1 Nov 2008 05:18:26 +0000 (14:18 +0900)]
Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp
John Darrington [Sat, 1 Nov 2008 05:17:19 +0000 (14:17 +0900)]
Remove reference to sa_restorer, because it's not part of POSIX.
Prevented compilation on Cygwin. Reported by unknown-1
John Darrington [Thu, 16 Oct 2008 11:43:43 +0000 (19:43 +0800)]
New .gitignore file
John Darrington [Thu, 16 Oct 2008 02:10:50 +0000 (10:10 +0800)]
Fixed return type of design_matrix_get_case_count.
design_matrix_get_case_count was declared as returning a void
but it tried to return a value. Changed it to returning size_t
Jason H Stover [Wed, 15 Oct 2008 16:12:35 +0000 (12:12 -0400)]
glm.q: Removed code to us QR decomposition, which requires the entire data
set to be stored in a matrix.
glm.q: fit_model: New function.
design-matrix.[ch]: Added array of size_t's to store the number of
data for each variable in struct design_matrix. Added accessor
functions design_matrix_increment_case_count,
design_matrix_set_case_count and design_matrix_get_case_count.
Jason H Stover [Wed, 15 Oct 2008 14:06:50 +0000 (10:06 -0400)]
covariance_accumulate: New function for one-pass computation of the
covariance matrix.
Added hash table to temporarily store the elements that will be in the
covariance matrix. The hash consists of the new data structure
covariance_accumulator. New functions hash_numeric_alpha,
covariance_accumulator_compare, match_nodes,
covariance_accumulator_free, covariance_hsh_create,
covariance_accumulator_hash, to assist with the hashing.
update_product: New function.
covariance_accumulator_to_matrix: New function to put hash elements
into the covariance matrix.
get_center: New function to center a value prior to adding it to
the covariance matrix.
covariance_matrix_insert: New function to add a value to the
covariance matrix.
John Darrington [Wed, 15 Oct 2008 03:02:01 +0000 (11:02 +0800)]
Set the DECIMAL point character from the LC_NUMERIC
component of the current locale.
John Darrington [Wed, 15 Oct 2008 02:49:58 +0000 (10:49 +0800)]
Allow value labels for non integer values.
John Darrington [Tue, 14 Oct 2008 12:42:51 +0000 (20:42 +0800)]
Mark variables as unused
Ben Pfaff [Sun, 12 Oct 2008 03:44:29 +0000 (20:44 -0700)]
Make pspp_linreg_with_cov() void, since it doesn't actually return a value.
Ben Pfaff [Sun, 12 Oct 2008 03:44:07 +0000 (20:44 -0700)]
Use const consistently in linreg routines, to avert warnings.
Ben Pfaff [Sun, 12 Oct 2008 03:42:44 +0000 (20:42 -0700)]
Fix GCC 4.3 warning about uninitialized structure member.
Ben Pfaff [Sat, 11 Oct 2008 23:51:44 +0000 (16:51 -0700)]
Fix warning due to unmunge() returning a const string that needs to be freed.
Ben Pfaff [Sun, 12 Oct 2008 03:59:17 +0000 (20:59 -0700)]
Advise not to build in a directory whose name contains a space or apostrophe.
Thanks to Richard Brittain <Richard.Brittain@dartmouth.edu> for pointing
out the problem.
Ben Pfaff [Sun, 5 Oct 2008 21:57:10 +0000 (14:57 -0700)]
Add prototype for design_matrix_clone() to design-matrix.h.
Ben Pfaff [Sun, 5 Oct 2008 21:56:57 +0000 (14:56 -0700)]
Eliminate unused variable.
Ben Pfaff [Sun, 5 Oct 2008 21:56:38 +0000 (14:56 -0700)]
Fix typo in comment.
Ben Pfaff [Sun, 5 Oct 2008 21:56:22 +0000 (14:56 -0700)]
Parenthesize more defensively in macro definition.
Ben Pfaff [Sun, 5 Oct 2008 21:56:01 +0000 (14:56 -0700)]
Eliminate unused code in glm.q, regression.q.
Ben Pfaff [Sun, 5 Oct 2008 21:53:00 +0000 (14:53 -0700)]
Fix GCC 4.3 warnings about parameters of incomplete type.
Ben Pfaff [Sat, 11 Oct 2008 22:35:42 +0000 (15:35 -0700)]
Implement variable and data file attributes.
Ben Pfaff [Thu, 9 Oct 2008 14:37:43 +0000 (07:37 -0700)]
Make str_copy_rpad() behave properly with a DST_SIZE of 0.
Ben Pfaff [Thu, 9 Oct 2008 05:25:36 +0000 (22:25 -0700)]
Make [ and ] valid tokens in the lexer.
The VARIABLE ATTRIBUTE and DATAFILE ATTRIBUTE commands use [ and ]
to designate array elements. This is the first use for these tokens
in the language implemented by PSPP, so until now these characters
were rejected with an error whenever they appeared in a syntax file
outside a comment or a quoted string.
Ben Pfaff [Sat, 11 Oct 2008 16:40:41 +0000 (09:40 -0700)]
Fix build when build and source directories are separate.
Ben Pfaff [Fri, 10 Oct 2008 05:49:13 +0000 (22:49 -0700)]
Merge commit 'origin/stable'
Conflicts:
tests/automake.mk
Ben Pfaff [Fri, 10 Oct 2008 04:32:35 +0000 (21:32 -0700)]
Update NEWS for 0.6.1.
John Darrington [Tue, 7 Oct 2008 11:40:56 +0000 (19:40 +0800)]
Fixed problems when building with --enable-relocatable
Added the INSTALLDIR macro to tests/dissect-sysfile.
Relocated the pathname of the splash screen graphic.
John Darrington [Mon, 6 Oct 2008 03:02:49 +0000 (11:02 +0800)]
Allow hyphens in {sub}command names.
Extend the lexer so as to allow hypens to appear
in the identifiers which of subcommands.
John Darrington [Mon, 6 Oct 2008 02:47:03 +0000 (10:47 +0800)]
Add generated c files to .gitignore
Ben Pfaff [Sun, 5 Oct 2008 18:17:10 +0000 (11:17 -0700)]
Use Gnulib module "regex", to fix linking on Mingw.
The GUI code uses POSIX regular expressions, which Mingw has in a separate
library (-lregex). We could just search for that library, but by including
our own implementation (via Gnulib) we also work around known bugs in
system regular expression implementations.
John Darrington [Sun, 5 Oct 2008 09:46:25 +0000 (17:46 +0800)]
Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp
John Darrington [Sun, 5 Oct 2008 03:50:40 +0000 (11:50 +0800)]
Moved the datasheet testing code out of src/{libspp,data}
Avoids high level things (such as moments) from appearing
in libpspp-core, which prevented it from being used standalone.
Ben Pfaff [Sat, 4 Oct 2008 04:21:28 +0000 (21:21 -0700)]
Update NEWS for 0.6.1-rc2.
Ben Pfaff [Sat, 4 Oct 2008 04:11:20 +0000 (21:11 -0700)]
Add ".sav" or ".por" suffix to filename when saving with Save_As
Closes bug #23137
(This is a cross-port of commit
169887f6d6d7bf5c10d5b05786aa3fd252040c93
from the master branch, originally authored and committed by John
Darrington.)
Ben Pfaff [Sat, 4 Oct 2008 03:59:44 +0000 (20:59 -0700)]
Only use -fgnu89-inline if the compiler actually supports it.
Jason Stover pointed out that we were using -fgnu89-inline even when the
compiler didn't support it. Obviously that's not good.
Ben Pfaff [Sat, 4 Oct 2008 04:01:50 +0000 (21:01 -0700)]
Also warn about missing prerequisites as we encounter them (bug #24445).
It can happen that configure bails out in the middle due to some issue
that PSPP cannot directly control; for example, AC_CHECK_SIZEOF exits
unconditionally if it fails. If this happens then, before, we would fail
to warn about missing required prerequisites that could well have been
the actual cause of the failure, because we only warn about these at
the end of the run.
Now, we warn about missing prerequisites both at time of detection and
in a summary at the end, to head off this problem.
Thanks to Jim Orr for allowing me to notice the problem.
Ben Pfaff [Sat, 4 Oct 2008 04:00:55 +0000 (21:00 -0700)]
Add note to INSTALL explaining how to use libraries from /usr/local.
Several users have had trouble building PSPP with self-built GSL, etc.
that were installed to /usr/local. Explain how to do it here to be
more friendly to Unix novices.
Thanks to Jim Orr for making me realize that this was important.
Ben Pfaff [Sat, 4 Oct 2008 03:54:28 +0000 (20:54 -0700)]
Add pspp-dev.dvi to CLEANFILES.
Automake does not seem to clean this file automatically. (Is this an
Automake bug?)
Ben Pfaff [Sat, 4 Oct 2008 03:53:51 +0000 (20:53 -0700)]
Append $(EXEEXT_FOR_BUILD) to output file name when building q2c.
Thanks to "Michel Boaventura" <michel.boaventura@gmail.com> for reporting
this problem and to John Darrington for assisting with the solution.
Ben Pfaff [Fri, 3 Oct 2008 03:42:23 +0000 (20:42 -0700)]
Update NEWS for 0.6.1 release.
John Darrington [Thu, 2 Oct 2008 13:08:10 +0000 (21:08 +0800)]
Enable recode unsupported RECODE mappings.
Fixes bug #21578
Ben Pfaff [Wed, 1 Oct 2008 04:33:09 +0000 (21:33 -0700)]
Avoid the C99-only feature of declaring a variable as part of a for statement.
Ben Pfaff [Wed, 1 Oct 2008 03:35:28 +0000 (20:35 -0700)]
Avoid bug in GCC 4.3 in hmap-test. Add comment warning about the bug.
See patch #6637 for additional commentary.
Ben Pfaff [Sat, 27 Sep 2008 03:42:01 +0000 (20:42 -0700)]
New hmap and hmapx hash table implementations.
These new hash table implementations should yield better performance
than the older one, for at least two reasons. First, they are based
on "separate chaining" rather than "open addressing", and thus do not
suffer from clustering, which is likely to be an issue with the hash
functions that we have been using. Second, they are carefully written
to generate simple code that should inline well.
Also, move the existing hash functions into a new pair of files,
src/lib/hash-functions.[ch]. This allows users of the new hash tables
to use them without including the older hash table header.
John Darrington [Tue, 30 Sep 2008 02:30:13 +0000 (10:30 +0800)]
Updated the description of the --with-gui-tools flag.
Some users were misunderstanding the purpose of this flag,
and using it in normal builds, and suffering the consequences.
This description, hopefully, makes it clear that they don't
need it.
John Darrington [Fri, 26 Sep 2008 11:03:08 +0000 (19:03 +0800)]
Whitespace changes only
John Darrington [Fri, 26 Sep 2008 10:44:02 +0000 (18:44 +0800)]
Avoid forcing an int into a void *
John Darrington [Fri, 26 Sep 2008 10:40:05 +0000 (18:40 +0800)]
Add .la to gitignore
John Darrington [Tue, 23 Sep 2008 01:14:51 +0000 (09:14 +0800)]
Fixed minor build problems.
Fixed two build problems which crept in when moving to
libtool libraries. One manifested itslef when building
on a system with ncurses in a non-standard place. The
other when building after configured with --enable-debug
John Darrington [Sun, 21 Sep 2008 02:42:15 +0000 (10:42 +0800)]
Avoid crash when recovering from syntax error in RELIABILITY.
John Darrington [Sat, 20 Sep 2008 09:54:12 +0000 (17:54 +0800)]
Mark variable as unused.
John Darrington [Sat, 20 Sep 2008 05:29:41 +0000 (13:29 +0800)]
Moved all static libraries to libtool libraries.
By default, this means that both pspp and psppire
will use two shared libraries. If static libraries
are desired, then this can be achieved by configuring
with LDFLAGS=-static-libtool-libs
Closes patch #6633
John Darrington [Sat, 20 Sep 2008 01:35:58 +0000 (09:35 +0800)]
Used pow2(x) instead of x * x where appropriate.
John Darrington [Sat, 20 Sep 2008 00:36:49 +0000 (08:36 +0800)]
Added the /WILCOXON subcommand to NPAR TESTS
Implemented wilcoxon signed rank test. Thanks to Ben
for review. Closes patch #6635
John Darrington [Fri, 19 Sep 2008 23:55:21 +0000 (07:55 +0800)]
Added the MEDIAN function to AGGREGATE.
Users can now aggregate data by the median.
Closes bug #11975
Jason H Stover [Wed, 17 Sep 2008 15:36:41 +0000 (11:36 -0400)]
coeff_init: Do not use coeff[0] as the intercept.
rearrange_covariance_matrix: Fix permutation of rows/columns.
run_glm: Account for categorical values.
cmd_glm: Drop double-allocation of model
linreg.h: Declare pspp_linreg_with_cov().
Jason H Stover [Mon, 15 Sep 2008 16:35:11 +0000 (12:35 -0400)]
pspp_coeff_var_to_coeff: Guard against a null pointer in coefs[i]->v_info.
regression.q: Pass variable lists to pspp_linreg_cache_alloc.
pspp_linreg_cache_alloc: Take variable lists as arguments to allow easier access
later and computation of number of coefficients during allocation.
rearrange_covariance_matrix: Use the new stored list of variables in the linreg_cache
instead of calling pspp_linreg_get_vars().
cache_init: Move computation of n_coeffs to pspp_linreg_cache_alloc().
John Darrington [Mon, 15 Sep 2008 10:05:04 +0000 (18:05 +0800)]
Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp
Conflicts:
po/en_GB.po
John Darrington [Mon, 15 Sep 2008 03:42:43 +0000 (11:42 +0800)]
Added some error checking to casereader_create_append_rank
Thanks to Ben Pfaff for this suggestion.
John Darrington [Mon, 15 Sep 2008 03:17:52 +0000 (11:17 +0800)]
Use pow2 function instead of SQR macro.
Thanks to Ben Pfaff for this suggestion.
John Darrington [Sun, 14 Sep 2008 13:29:53 +0000 (21:29 +0800)]
Don't append % to count totals.
There was an erroneous '%' appended to the totals for count
values. This change removes it. Fixes bug #24003
John Darrington [Sun, 14 Sep 2008 12:51:38 +0000 (20:51 +0800)]
Don't destroy dictionary on error if we didn't create it.
Avoid assertion failure on bad input. Closes bug #24031
John Darrington [Sun, 14 Sep 2008 08:57:10 +0000 (16:57 +0800)]
Fixed bug which caused a crash if "end data." was not left aligned.
John Darrington [Sat, 13 Sep 2008 04:20:39 +0000 (12:20 +0800)]
Added src/math/statistic.h to dist files.
John Darrington [Sat, 13 Sep 2008 00:57:20 +0000 (08:57 +0800)]
Added README to distributed files
John Darrington [Sat, 13 Sep 2008 00:47:28 +0000 (08:47 +0800)]
Added new casetranslator for appending ranks.
New function casereader_create_append_rank, which
returns a translating casereader which appends the
rank of the variable upon which the casereader is
sorted.
John Darrington [Sat, 13 Sep 2008 00:37:08 +0000 (08:37 +0800)]
New function: var_create_internal.
Added a new function for creating "internal" variables.
Ie, those which don't appear in any dictionary, and
are for the purposes of internal calculations.
John Darrington [Fri, 12 Sep 2008 23:31:40 +0000 (07:31 +0800)]
Downgraded mismatched gtk warning.
Changed the notice about mismatched gtk version from g_critical
to g_warning, since usually it's not particularly serious.
John Darrington [Fri, 12 Sep 2008 23:17:28 +0000 (07:17 +0800)]
Implemented the reliability command.
Added a cut down version of the reliability command.
This version supports calculation of the Cronbach alpha
statistic. Closes bug #24021
Jason H Stover [Fri, 12 Sep 2008 21:47:43 +0000 (17:47 -0400)]
Do not use const in pspp_linreg_get_vars. Use correct covariance
matrix in pspp_linreg_with_cov. Initialize model cache in glm.q
John Darrington [Mon, 8 Sep 2008 10:53:16 +0000 (18:53 +0800)]
Add ".sav" or ".por" suffix to filename when saving with Save_As
Closes bug #23137
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 [Sun, 24 Aug 2008 05:02:18 +0000 (13:02 +0800)]
Fixed some breakage in comment lines.
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.
Jason H Stover [Fri, 5 Sep 2008 20:37:18 +0000 (16:37 -0400)]
Added design_matrix_clone() to clone a design matrix.
John Darrington [Fri, 5 Sep 2008 02:06:40 +0000 (10:06 +0800)]
Added some common glob patterns to .gitignore
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 12:28:45 +0000 (20:28 +0800)]
Add casereader_create_append_numeric function.
This change provides a new casereader translator which
appends a numeric value to casereader; the value to be
determined by a user supplied function.
John Darrington [Thu, 4 Sep 2008 12:08:52 +0000 (20:08 +0800)]
Added a n_missing parameter to casereader_create_filter_missing.
Also update all callers. Thanks to Ben for reviewing this patch.