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

This release contains new linear algebra routines (Pivoted and Modified Cholesky, Complete Orthogonal Decomposition, matrix condition number estimation) as well as a completely rewritten nonlinear least squares module, including support for Levenberg-Marquardt, dogleg, double-dogleg, and Steihaug-Toint methods.

The full NEWS file entry is appended below.

The file details for this release are:

ftp://ftp.gnu.org/gnu/gsl/gsl-2.2.tar.gz

ftp://ftp.gnu.org/gnu/gsl/gsl-2.2.tar.gz.sig

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.

Patrick Alken

=======

- What is new in gsl-2.2:

- updated gsl_linalg_cholesky_invert to use Level-2 BLAS

and added function gsl_linalg_pcholesky_invert

- added function gsl_linalg_tri_invert for inverting

triangular matrices

- fix GSL_EIGEN_SORT_VAL_{ASC,DESC} for nonsymmetric

eigensystems (Victor Zverovich)

- added complete orthogonal decomposition routines

(gsl_linalg_COD)

- bug fix where median calculation wasn't reset in

gsl_rstat_reset(); added gsl_rstat_quantile_reset() function

(reported by Pedro Donato)

- added multivariate Gaussian random distribution

gsl_ran_multivariate_gaussian (TimothÃ©e Flutre)

- added functions to estimate the 1-norm reciprocal condition

number for various matrix factorizations:

* gsl_linalg_cholesky_rcond

* gsl_linalg_QRPT_rcond

- added functions gsl_linalg_QRPT_{lssolve,lssolve2} to

compute least squares solutions with the QRPT decomposition

- added function gsl_permute_matrix()

- added modified Cholesky factorization (gsl_linalg_mcholesky)

to handle symmetric indefinite matrices

- added pivoted Cholesky factorization (gsl_linalg_pcholesky)

for ill-conditioned matrices

- rewrote (real) Cholesky decomposition to use

a Level-2 blas algorithm instead of Level-1. Flop

count is about the same but the code is much simpler

and easier to follow

- completely rewritten nonlinear least squares module,

including support for large problems; the user may

now control the linear solver used, the trust region

updating strategy, and the scaling method. In addition,

support has been added for the geodesic acceleration

step (Transtrum 2011) which can speed up convergence

on a wide class of problems.

- added gsl_rstat_rms() for root mean square

- optimized lmniel nonlinear least squares solver

- improved precision in Bessel K0/K1 near x = 2

(Pavel Holoborodko, *bug #47401*)

- added support for compressed row storage sparse

matrices (Alexis Tantet)

- bug fix in convergence check of hypergeometric 2F1

function (*bug #45926*)

- added gsl_multilarge_linear_lcurve() to compute

the L-curve for large linear systems

- updated multilarge normal equations method to use

new Cholesky scaling for better numerical stability

- added scaling to Cholesky routines to reduce the

condition number prior to factorization

Version 2.1 of the GNU Scientific Library (GSL) is now available. GSL

provides a large collection of routines for numerical computing in C.

This release is primarily for fixing a few bugs present in the recent

2.0 release, but also provides a brand new module for solving large

linear least squares problems.

The full NEWS file entry is appended below.

The file details for this release are:

ftp://ftp.gnu.org/gnu/gsl/gsl-2.1.tar.gz

ftp://ftp.gnu.org/gnu/gsl/gsl-2.1.tar.gz.sig

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.

Patrick Alken

=======

- What is new in gsl-2.1:

- added test suite for example programs

- bug fix when compiling with #undef GSL_DISABLE_DEPRECATED

- bug fix in setting libtool age versioning

- bug fix in gsl_multifit_wlinear()

- added gsl_multifit_linear_rcond() to compute reciprocal

condition number of least squares matrix

- added gsl_multilarge module for large linear least squares

systems

Version 2.0 of the GNU Scientific Library (GSL) is now available. GSL

provides a large collection of routines for numerical computing in C.

The major version number was increased, since a number of internal

workspaces have changed and so existing binaries must be recompiled

against this new library. There are also a small number of API changes

and deprecated functions.

This release includes significant new features and bug fixes:

- Sparse matrices
- Regularized least squares
- 2D interpolation
- New nonlinear least squares solver

The full NEWS file entry is appended below.

The file details for this release are:

ftp://ftp.gnu.org/gnu/gsl/gsl-2.0.tar.gz

ftp://ftp.gnu.org/gnu/gsl/gsl-2.0.tar.gz.sig

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.

Patrick Alken

==================

- What is new in gsl-2.0:

- fixed
*bug #43258*for hypergeometric functions (Raymond Rogers)

- fixed

- added L-curve analysis routines for linear Tikhonov regression

- add running statistics module

- added bilinear and bicubic interpolation (David Zaslavsky)

- added function gsl_multifit_robust_residuals to compute robust

fit residuals

- added Steffen monotonic interpolation method (Jean-FranÃ§ois Caron)

- added new nonlinear least squares solver 'lmniel' suitable for

systems with large numbers of data

- nonlinear least squares solver now tracks the number of function

and Jacobian evaluations, see example program for details

- the 'fdf' field of gsl_multifit_function_fdf is now deprecated

and does not need to be specified for nonlinear least squares

problems

- added extensive test suite to nonlinear least squares module,

resulting in a few minor bug fixes; the routine

gsl_multifit_fdfsolver_driver has been rewritten (with API change)

to handle the various error codes of the lmsder iterate

routine, resulting in a high level caller which is highly robust

for a wide class of problems

- added support for sparse matrices, including a GMRES

iterative linear solver

- added routines gsl_linalg_givens and gsl_linalg_givens_gv

for Givens rotations

- added Tikhonov (ridge) regularization to least squares module

(linear and nonlinear)

- removed unused argument 'n' from gsl_sf_ellint_D

- merged bspline_deriv_workspace into bspline_workspace to simplify

bspline API; the functions

gsl_bspline_deriv_alloc

gsl_bspline_deriv_free

are now deprecated and will be removed in a future release.

- merged ALF extension into GSL for associated Legendre functions;

api has changed; consequently the functions:

gsl_sf_legendre_Plm_array

gsl_sf_legendre_Plm_deriv_array

gsl_sf_legendre_sphPlm_array

gsl_sf_legendre_sphPlm_deriv_array

gsl_sf_legendre_array_size

are now deprecated and will be removed in a future release.

- added function gsl_multifit_robust_weights to allow user to

access the various weighting functions

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.