2011-08-16 Joseph Schlecht Version 2.0 Improved error data structure. * src/jwsc/base/error.h: Removed redundant function name from the error structure. Replaced ERROR_INV_RESULT with ERROR_CALC to better distinguish a precision error from a bug. (JWSC_EARG, JWSC_EIO, JWSC_ECALC): New error macros to utilize preprocessor line/file info and replace lengthy create_error calls. Removed memory module to faciliate using an external memory debugging library (dmalloc). Replaced all calls to jws_malloc, jws_realloc, and jws_free with malloc, realloc, and free. * src/jwsc/base/memory.h: Removed. * src/jwsc/base/memory.c: Removed. Removed unused string data structure. * src/jwsc/base/string.h: Removed. * src/jwsc/base/string.c: Removed. Added a few routines to deal with file names. * src/jwsc/base/fname.h: New file. * src/jwsc/base/fname.c: New file. Updated ImageMagick API calls to v6.7 * src/jwsc/image/image_io.c (read_image_with_magick_f): Replaced deprecated call to DispatchImage with ExportImagePixels in ImageMagick. * src/jwsc/vector/vector.c (cat_vectors_u32, cat_vectors_i32) (cat_vectors_i64, cat_vectors_f, cat_vectors_d, cat_vectors_cf) (cat_vectors_cd): New function to concatenate vectors. Removed cluster module, which had been deprected by the stats module. Included support for DMalloc. Fixed license documentation for doxygen. Initiated use of 'goto' for cleaning up library routines on exit. That's right, goto considered harmless (for cleanup). Flames welcome. 2008-09-22 Joseph Schlecht Version 1.0.4 * src/jwsc/stat/dynamics: Fixed a bug in the momentum variable update for stochastic dynamics and hybrid Monte Carlo. * src/jwsc/image/image_util: Added simple fg/bg image thresholding. Added an image cropping function. * src/jwsc/prob/pdf: Added a gamma density function. Improved run-time of the Gaussian sampling functions to use log_gaussian_pdf. 2008-07-16 Joseph Schlecht Version 1.0.3 * src/jwsc/stat/dynamics: Added an interface to all dynamical samplers for a delta_t scalar or a vector. * src/jwsc/stat/mmm: Added multinomial mixture model -- a generalization of the bernoulli mixture model. 2008-05-14 Joseph Schlecht Version 1.0.2 * src/jwsc/vector/vector: Added a function to copy a vector section into another vector at a particular offset. * src/jwsc/stat/dynamics: Estimating the projection of the gradient vector with the largest eigenvector of the potential function's hessian was converging too slowly when approaching a saddlepoint. Fixed this by setting a stopping condition when change in the projection is less than a small value. Removed some unnecessary statements. Added more stochastic dynamics algorithm implementations, including hybrid monte carlo and the leapfrog algorithm. * src/jwsc/stat/gmm: Added ability to return the mixture component responsibilities (gamma). * src/jwsc/stat/stat: Calculate statistics for a set of independent random variables. * src/jwsc/matblock/matblock: Added supporting functions for an unsigned 8-bit Matblock. * src/jwsc/base/option: Option descriptions printed beyond one line always indent the specified distance; only the first line can be shifted if the option name is too long. 2008-05-09 Joseph Schlecht Version 1.0.1 Changed licensing from GPL to a Creative Commons, see the COPYING file for details. Added a licensing header to all source (.c.h) files. 2008-02-25 Joseph Schlecht Version 1.0.0 Release of version 1.0.0 2007-07-09 Joseph Schlecht Version 0.1.8 * src/jwsc/image/edge.c: Fixed a bug when freeing a null edge set. * src/jwsc/math/lapack.c: Added function for matrix SVD. * src/jwsc/vector/vector_io.c: Added functions to print a vector formatted with a printf-style string. * src/jwsc/matrix/matrix_io.c: Fixed the functions reading a matrix with no header so they can read from a stream that does not allow seeking, for example, stdin. * src/jwsc/matrix/matrix_math.c: Added functions to compute the SVD of a matrix and its pseudoinverse. * src/jwsc/base/option.c: Printing the options always either prints the option flag or some extra space so the long option names are always aligned. * src/jwsc/stat: Added a statistics module with some linear regression functions. 2007-01-21 Joseph Schlecht Version 0.1.7 * src/jwsc/matrix/matrix_prob.c: Probability density and mass functions that use matrices (and vectors) added. * src/jwsc/math/lapack.c: Initial add for a wrapper around the LAPACK fortran library. * src/jwsc/prob/pdf.c: Added a function to compute the log likelihood of a Gaussian. * src/jwsc/matrix/matrix_math.c: Fixed the definition of a translation matrix. Added routines for LU decomposition, matrix inversion, and determinant. * src/jwsc/image/image_io.c: Fixed missing test for NULL pointer on the file name suffix when reading an image. * src/jwsc/image/image_util.c: Added function to extend an image with some padding. * src/jwsc/image/edge.c: Changed edge detection to automatically include some padding. * src/jwsc/matrix/matrix.c: Added functions to create an identity matrix. * src/jwsc/matrix/matrix_math.c: Added functions to create various types of affine matrices for translation, scaling and rotating. * src/jwsc/imagex/edge.c: Dramatically changed the interface to edge detection and the data structures that hold edge points. Made it possible to access linked edge points that form an edge. 2006-12-21 Joseph Schlecht Version 0.1.6 * src/jwsc/imgblock/surface.c: Added an intensity and albedo value to surface points and patches, respectively. Changed the name of 'img' to 'mat', in surface points and patches, to be more accurate. * src/jwsc/base/file_io.c: Added a function to return a pointer to the suffix in a file name. * src/jwsc/base/bits.c: Initial add. * src/jwsc/image/image_io.c: Changed image writing and reading routines to be either suffix dependent, or explicit for the JIFF image format. * src/jwsc/imgblock/imgblock_io.c: Added support for reading and writing JIFF images. * src/jwsc/image/jiff.c: Initial add. * src/tests/image/image_io-test.c: Added tests for the JIFF image format. * src/tests/imgblock/imgblock_io-test.c: Added tests for the JIFF image format. * src/jwsc_config.c.in: Replaces src/jwsc-config.c. 2006-12-20 Joseph Schlecht Version 0.1.5 * m4: Replaced the ad hoc set of m4 scripts with a centralized (shared) set and updated configure.ac. * README: Updated how to install. * src/jwsc/base/memory.c: Added function to disable thread-safe memory access. * src/jwsc/prob/pdf.c: Fixed uniform density random sample. * src/jwsc/prob/pmf.c: Added geometric distribution probability and sampling functions. * src/jwsc/imgblock/surface.c: Added capability to create surface patches from surface points. 2006-07-09 Joseph Schlecht Version 0.1.4 * src/jwsc/matrix/matrix_math.c: Added functions to create homogeneous rotation and translation matrices. * src/jwsc/math/constants.h: Added more PI constants. * src/jwsc/base/memory.c: Fixed incorrect pthread define. 2006-04-30 Joseph Schlecht Version 0.1.3 * Makefile.am: Added a 'clean-local' target for the Doxyfile. * src/jwsc/matrix/matrix.c: Added a functions for uint32_t matrices. * src/jwsc/matrix/matrix_io.c: Added a functions for reading and writing uint32_t matrices. * src/jwsc/vector/vector.c: Added a functions for uint32_t vectors. * src/jwsc/vector/vector_io.c: Added a functions for reading and writing uint32_t vectors. * src/jwsc/base/limits.h: Added limits for integers. * src/jwsc/matblock/matblock.c: Added functions to copy a matrix into and from a matblock. * src/jwsc/prob/pdf.c: Added function to draw a random sample from the sine function. 2006-04-26 Joseph Schlecht Version 0.1.2 * src/tests/imgblock/surface_test.c: Updated call to new prototype for color_surface_points_f. * src/jwsc/images/edge.c (create_gradient_map_f): Eliminated unnecessary allocation of filters; re-used one allocated filter. * src/jwsc/imgblock/surface.h (color_surface_points_f): Function improved to create a new image block with the colored points. * src/jwsc/imgblock/surface.c (create_gradient_map_f) (color_surface_points_f): Improved color_surface_points_f to create a new image block with the colored points. Eliminated unnecessary allocation of filters in create_gradient_map_f; re-used one allocated filter. 2006-04-24 Joseph Schlecht Version 0.1.1 * Doxyfile.in: Fixed name of doxytag to jwsc. * README: Fixed a few typos and added description of the jwsc-config program. * configure.ac: Added defines for linking command, CFLAGS, CPPFLAGS, and LDFLAGS. * m4/ax_check_fftw3f.m4: Check the library against fftwf_init_threads. * src/Makefile.am: Added the jwsc-config program. * src/jwsc-config.c: Initial add. Program to print information about the configuration of the library. * src/jwsc/base/error.c: Fixed description for printing error messages. * src/jwsc/base/option.c: Fixed a bug resulting from casting a String to a const char. * src/jwsc/image/edge.h: Added functions to read and write edge points to an ASCII file. * src/jwsc/image/edge.c: Added functions to read and write edge points to an ASCII file. 2006-04-23 Joseph Schlecht Version 0.1.0 First verstion.