Version 1.15 of the GNU Scientific Library (GSL) is now available. GSL provides a large collection of routines for numerical computing in C.

This release includes significant new contributions from the following people:

- Tuomo Keskitalo: new gsl_odeiv2 differential equation framework with improved implicit solvers (this supersedes the existing gsl_odeiv framework).
- Pedro Gonnet: implementation of the CQUAD algorithm for robust integration of difficult functions.
- Jose Luis Garcia Pallero: error checking for the CBLAS library.

Full details in the official announcement. Thanks to everyone who reported bugs and contributed improvements.

I've migrated the GSL repository from git to bzr on Savannah, it can be accessed with:

bzr branch http://bzr.savannah.gnu.org/r/gsl/trunk

Bazaar is the standard GNU distributed version control system. More information at http://bazaar-vcs.org/.

Version 1.14 of the GNU Scientific Library (GSL) is now available. GSL provides a large collection of routines for numerical computing in C.

This is a maintenance release which fixes reported bugs. Support for multisets and fixed order Gauss-Legendre integration has been added and the build system has also been upgraded to the latest automake, autoconf and libtool. (Full details in the NEWS file).

The file details are:

http://ftpmirror.gnu.org/gsl/gsl-1.14.tar.gz

http://ftpmirror.gnu.org/gsl/gsl-1.14.tar.gz.sig (GPG signature)

The GSL project homepage is http://www.gnu.org/software/gsl/

Thanks to everyone who reported bugs and contributed mprovements.

Brian Gough

(GSL Maintainer)

Version 1.13 of the GNU Scientific Library (GSL) is now available. GSL provides a large collection of routines for numerical computing in C.

This is a maintenance release, which fixes reported bugs and upgrades the build system to the latest autoconf and automake. The complete list of changes can be found in the NEWS file. The GSL project homepage is http://www.gnu.org/software/gsl/

GSL is free software distributed under the GNU General Public License version 3.

Thanks to everyone who reported bugs and contributed improvements.

Brian Gough

(GSL Maintainer)

I will be at the FSF Libre Planet free software conference at Harvard Science Center on 21-22 March. John Eaton (GNU Octave) will also be there. -- Brian Gough

A new print edition of the GNU Scientific Library Reference Manual is now available (ISBN 0954612078). It is published under the GNU Free Documentation License and covers version 1.12 of the library. The money raised from sales of the manual helps support the development of GSL. [Book details here]

Many distributions are starting to link every application with the GNU Linker's --as-needed flag, to avoid loading libraries that are specified on the command-line but not actually used.

While this is a good thing, it caused a problem for applications using GSL because the main library needs to call an external library for vector operations (BLAS). These BLAS functions are typically not called from the user's object file directly, and they were being discarded by --as-needed causing numerous "unresolved reference" errors. The problem arises because --as-needed does not follow references recursively, except for direct shared library dependencies specified by the ELF DT_NEEDED field (i.e libraries explicitly defined as a dependency in libtool).

In the case of GSL we are not able to specify the dependency on the external library explicitly--we do not know which BLAS library will be used. We want people to be able to choose different BLAS libraries when they link their applications.

Now thanks to Alan Modra there is a enhancement to binutils [1,2] which allows --as-needed to search recursively, ensuring that libraries which are used both directly and indirectly will be linked, and only those with no references at all will be discarded. The next release of binutils should resolve the problems encountered using GSL with --as-needed.

[1] http://sourceware.org/ml/binutils/2009-01/msg00399.html

[2] http://sourceware.org/ml/binutils/2009-01/msg00413.html

Version 1.12 of the GNU Scientific Library (GSL) is now available. GSL provides a large collection of routines for numerical computing in C.

This is a maintenance release, which fixes reported bugs and upgrades the build system to the latest libtool, autoconf and automake. The full NEWS file entry is appended below.

The file details are:

ftp://ftp.gnu.org/gnu/gsl/gsl-1.12.tar.gz (2.8 MB)

ftp://ftp.gnu.org/gnu/gsl/gsl-1.12.tar.gz.sig (GPG signature)

3b5cba13f4b90e1473f693a5dc7efdcaae55fc46 (sha1 checksum)

The GSL project homepage is http://www.gnu.org/software/gsl/

GSL is free software distributed under the GNU General Public License.

Thanks to everyone who reported bugs and contributed improvements.

Brian Gough

(GSL Maintainer)

What is new in gsl-1.12:

- Upgraded to latest libtool, autoconf and automake (libtool-2.2.6, autoconf-2.63, automake-1.10.2)

- Improved the convergence of gsl_sf_gamma_inc_P for x/a ~=~ 1 and large x,a. Fixes problems with large arguments in cdf functions such as gsl_cdf_chisq_Pinv(x,nu) [bug 24704].

- Fixed gsl_ran_gamma_knuth to handle the case of a >= UINT_MAX [
*bug #24897*]

- Added gsl_bspline_eval_deriv to compute bspline derivatives (Rhys Ulerich)

- Added a faster simplex mininimser gsl_multimin_fminimizer_nmsimplex2 which is O(N) instead of O(N^2) [
*bug #24418*]

- Improved the original chi-squared formula in gsl_monte_vegas to avoid catastrophic cancellation [
*bug #24510*]. The previous formula could return incorrect or negative values for relative errors < 1e-8, which could occur when integrating very smooth functions.

- Added new auxiliary functions gsl_cheb_order, gsl_cheb_size, gsl_cheb_coeffs for Chebyshev series [
*bug #21830*]

- Updated license of the reference manual to GNU FDL version 1.3.

- Fixed a bug where the gsl_isinf function would return +1 for -Inf on systems where isinf(-Inf) returns the non-standard value +1. [
*bug #24489*]

- Added missing functions gsl_vector_complex_{isnonneg,add,sub,mul, div,scale,add_constant} and gsl_matrix_complex_float_isnonneg [
*bug #22478*]

- Cross compilation should now work for x86 hosts.

- Fixed a bug in gsl_interp_accel_find() where values lying on the upper boundary between interpolation points could return the index from the lower side. [
*bug #24211*]

- Fixed gsl_linalg_solve_cyc_tridiag so that its output respects the solution vector's stride. Previously the x_stride value was ignored causing the output to be incorrect for non-unit stride. [
*bug #24162*]

- Corrected a bug in the series calculation of gsl_sf_ellint_Kcomp for k close to 1. [
*bug #24146*]

- Extended gsl_linalg_QRPT_update to handle rectangular matrices. Corrected definition of the update formula in the manual for both gsl_linalg_QR_update and gsl_linalg_QRPT_update.

- Added routine gsl_linalg_cholesky_invert

- Fixed a bug the simplex algorithm which caused the second highest point to be incorrectly equal to the first when the first value was the highest, which could cause suboptimal convergence. [
*bug #23192*]

- Fixed a problem with convergence for inverse gamma and chisq distribitions, gsl_cdf_gamma_{P,Q}inv and gsl_cdf_chisq_{P,Q}inv. [
*bug #23101*]

- Improved the handling of constant regions in Vegas by eliminating spurious excess precision when computing box variances.

- Fixed a potential division by zero in gsl_monte_miser when the left/right weight factors decrease below 1.

- Fixed incorrect dimensions check in gsl_matrix_sub{row,column}

There is a test release for gsl-1.12 at

ftp://alpha.gnu.org/gnu/gsl/gsl-1.11.90.tar.gz

ftp://alpha.gnu.org/gnu/gsl/gsl-1.11.90.tar.gz.sig

Please try it out and report any problems to the bug-gsl AT gnu.org mailing list. Thanks. I've upgraded libtool, autoconf and automake to the latest versions. Other changes from the NEWS file are below.

--

Brian Gough

- Upgraded to latest libtool, autoconf and automake (libtool-2.2.6, autoconf-2.63, automake-1.10.2)

- Improved the convergence of gsl_sf_gamma_inc_P for x/a ~=~ 1 and large x,a. Fixes problems with large arguments in cdf functions such as gsl_cdf_chisq_Pinv(x,nu) [bug 24704].

- Fixed gsl_ran_gamma_knuth to handle the case of a >= UINT_MAX [
*bug #24897*]

- Added gsl_bspline_eval_deriv to compute bspline derivatives (Rhys Ulerich)

- Added a faster simplex mininimser gsl_multimin_fminimizer_nmsimplex2 which is O(N) instead of O(N^2) [
*bug #24418*]

- Improved the original chi-squared formula in gsl_monte_vegas to avoid catastrophic cancellation [
*bug #24510*]. The previous formula could return incorrect or negative values for relative errors < 1e-8, which could occur when integrating very smooth functions.

- Added new auxiliary functions gsl_cheb_order, gsl_cheb_size, gsl_cheb_coeffs for Chebyshev series [
*bug #21830*]

- Updated license of the reference manual to GNU FDL version 1.3.

- Fixed a bug where the gsl_isinf function would return +1 for -Inf on systems where isinf(-Inf) returns the non-standard value +1. [
*bug #24489*]

- Added missing functions gsl_vector_complex_{isnonneg,add,sub,mul, div,scale,add_constant} and gsl_matrix_complex_float_isnonneg [
*bug #22478*]

- Cross compilation should now work for x86 hosts.

- Fixed a bug in gsl_interp_accel_find() where values lying on the upper boundary between interpolation points could return the index from the lower side. [
*bug #24211*]

- Fixed gsl_linalg_solve_cyc_tridiag so that its output respects the solution vector's stride. Previously the x_stride value was ignored causing the output to be incorrect for non-unit stride. [
*bug #24162*]

- Corrected a bug in the series calculation of gsl_sf_ellint_Kcomp for k close to 1. [
*bug #24146*]

- Extended gsl_linalg_QRPT_update to handle rectangular matrices. Corrected definition of the update formula in the manual for both gsl_linalg_QR_update and gsl_linalg_QRPT_update.

- Added routine gsl_linalg_cholesky_invert

- Fixed a bug the simplex algorithm which caused the second highest point to be incorrectly equal to the first when the first value was the highest, which could cause suboptimal convergence. [
*bug #23192*]

- Fixed a problem with convergence for inverse gamma and chisq distribitions, gsl_cdf_gamma_{P,Q}inv and gsl_cdf_chisq_{P,Q}inv. [
*bug #23101*]

- Improved the handling of constant regions in Vegas by eliminating spurious excess precision when computing box variances.

- Fixed a potential division by zero in gsl_monte_miser when the left/right weight factors decrease below 1.

- Fixed incorrect dimensions check in gsl_matrix_sub{row,column}

The license of the GNU Scientific Library Reference manual has been updated to version 1.3 of the GNU FDL.

If you are working on changes to a project using Git, such as GSL, it can be useful to make your repository public rather than sending patches.

The usual way to export a git branch involves running **git-daemon**, webdav or having git installed on the web server. However, it is also possible to export your repository simply by copying the **.git** directory to a web server. There are some limitations---your whole repository is exported, not just a specific branch, and you must run **git-update-server-info** each time before copying the files.

Directory index pages need to be enabled the web server---when a git client accesses your repository over http it needs to get a list of the files in each directory. With Apache this requires

You can then copy your repository to the web server:

Run these commands each time you want to export the repository e.g. after making some changes and committing them. Note the trailing slash on **.git/** to copy the contents of the directory, rather than the directory itself. Both commands are needed, you can put them together in a script or add the command **git-update-server-info** to **.git/hooks/post-commit** and make it executable.

The repository should now be accessible remotely over http:

If you want to work against a remote repository you can copy it as usual to your local machine:

but to save space it is also possible to make a shallow copy:

The git documentation suggests that fetch will not work against a shallow copy, but it seems to work ok in this context.

Release 1.12 of the GNU Scientific Library is planned in the next 1-2 months. The goal is to fix the outstanding bugs in the tracker and to do testing with the latest release of GCC.

This is particularly needed for programs compiled with -std=c99 as the header files have been extended to (hopefully) be compatible with both c89 and c99 with respect to the changes in the inline keyword.