John Darrington [Thu, 13 Nov 2008 06:02:58 +0000 (15:02 +0900)]
Simplified the scrolling behaviour
Made all the scrolling take place via the horizontal or vertical GtkAdjustments
instead of directly. Some key events have been removed.
We'll add them back again as and when necessary.
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().
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.
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 [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.
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, 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.