* What is new in gsl-1.13: ** Upgraded to latest autoconf and automake (autoconf-2.64, automake-1.11) ** Fixed the rk4 and bspline allocators to avoid invalid free() calls under out of memory conditions. [bug #27194, #27236] ** Fixed a bug in gsl_multimin_fminimizer_nmsimplex2 where the center and size of the simplex were not updated on contract-by-best steps, causing failures in convergence. [bug #27180] ** Added new functions to set MISER and VEGAS Monte Carlo integration parameters, and to examine VEGAS chi-squared value and intermediate results. ** Added the function gsl_bspline_greville_abscissa to compute Greville abscissae for B-splines. ** The cumulative distribution functions gsl_cdf_gumbel1_{P,Q} should now handle a larger range of parameters without underflow and overflow. ** The header file gsl_const_cgs.h no longer defines values for electromagnetic units. Applications should use gsl_const_cgsm.h instead to obtain the values in the CGS-Magnetic system. The previous values for these units given in gsl_const_cgs.h were ill-defined as the type of CGS electromagnetic system was unspecified (the values were a mixture of CGS units with the Ampere of the MSKA system). The affected constants are GSL_CONST_CGS_BOHR_MAGNETON, GSL_CONST_CGS_ELECTRON_CHARGE, GSL_CONST_CGS_ELECTRON_MAGNETIC_MOMENT, GSL_CONST_CGS_FARADAY, GSL_CONST_CGS_GAUSS, GSL_CONST_CGS_NUCLEAR_MAGNETON, GSL_CONST_CGS_PROTON_MAGNETIC_MOMENT, and GSL_CONST_CGS_ROENTGEN. ** The Pochhammer functions gsl_sf_poch(a,x) and gsl_sf_lnpoch(a,x) now handle the special cases where a and a+x are zero or negative integers. ** The confluent hypergeometric function gsl_sf_hyperg_U (a,b,x) now handles some cases where x=0. The case where 1+a-b is a negative integer no longer returns an error [bug #22859] and the incorrect termination of the series in certain cases is fixed [bug #26706]. ** Added a new function gsl_poly_eval_derivs to evaluate a polynomial and its derivatives simultaneously. ** Added a new univariate minimisation algorithm gsl_min_fminimizer_quad_golden which is a variant of Brent's algorithm with safeguarded step-length adjustment. ** Added a new Nelder-Mead minimiser gsl_multimin_fminimizer_nmsimplex2rand which uses a randomly oriented simplex rather than one fixed on the coordinate axes [bug #25077] ** The texinfo file now uses the dircategory "Software libraries" from the Free Software Directory, as recommended in the Texinfo manual. ** The function gsl_ran_exponential now includes zero in its output range. [bug #25039] ** All functions for freeing allocated memory now accept a NULL pointer, following the standard C convention for free(). [bug #25319] ** The function gsl_sum_levin_u_accel now handles the special case c_0 + 0 + 0 + 0 + .... that occurs when summing power series c_n*x^n with x=0. [bug #26807] ** The functions gsl_linalg_LU_solve, gsl_linalg_LU_svx, gsl_linalg_LU_refine, gsl_linalg_LU_invert and their complex equivalents now return an error for singular matrices. ** The multifit LMDER hybrid solvers now check the return code of the user-supplied function in the gsl_multifit_fdfsolver_set method. [bug #26871] ** Improved the implementation of gsl_ran_discrete_preproc to avoid internal errors due to inconsistencies from excess precision on some platforms. [bug #26502] ** Corrected gsl_sf_hyperg_2F1(a,b,c,x) to not give a domain error in the case where c is a negative integer and the series terminates with a finite result. ** The C99 inline keyword is now supported, in addition to the previously supported GNU-style inline. ** Modified gsl_poly_complex_solve_cubic and gsl_poly_solve_cubic to avoid returning NaNs in cases where excess precision causes a change in the number of roots. ** Fixed incorrect length check in gsl_blas_drotm. [bug #26503] ** Fixed gsl_odeiv_step_gear2 to restore y on step failure ** gsl_odeiv_evolve_apply now restores the correct value of t on step failures [bug #26255]. ** Using make install prefix=DIR now puts correct paths in package config files gsl-config and gsl.pc ** Modified gsl_monte_vegas to work around pow() function inaccuracies on MinGW [bug #25413]. ** Increased the number of terms in gsl_sf_mathieu_a and gsl_sf_mathieu_b to improve convergence in difficult regions [bug #25075] * What was 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} * What was new in gsl-1.11: ** The GSL repository and bug database are now hosted at Savannah http://savannah.gnu.org/projects/gsl/ ** Upgraded to latest libtool, autoconf and automake (libtool-2.2, autoconf-2.61, automake-1.10.1) ** Fixed underflow in ODE adaptive step size controller that could cause step size to decrease to zero (bug #21933). ** Improved the handling of the asymptotic regime in gsl_sf_bessel_jl. ** Improved the handling of large arguments in cumulative distribution functions using the incomplete beta function, such as gsl_cdf_fdist_P. ** Fixed overflow bug in gsl_cdf_hypergeometric_{P,Q} for large arguments (bug #22293). ** gsl_ran_gaussian_ziggurat now handles generators with different ranges explicitly, to minimise the number of function calls required (bug #21820). Also fixes bug #22446 (rng limit in gsl_ran_chisq()). ** Added missing error terms in gsl_sf_exp_mult_e10_e to prevent the error being underestimated (bug #22041). ** Updated some constants to the CODATA 2006 values. ** The hypergeometric function gsl_sf_hyperg_2F1 now handles the case where x==1. ** Fixed a bug in the brent minimiser which prevented optimal convergence. ** Added functions for evaluating complex polynomials ** The convergence condition for gsl_multiroots_test_delta now accepts dxi == 0. ** Improved functions gsl_ldexp and gsl_frexp to handle the full range of double precision numbers in all cases. ** Added new quasi random generators gsl_qrng_halton and gsl_qrng_reversehalton which support dimensions up to 1229. ** Added function gsl_multifit_linear_residuals for computing the residuals of the fit * What was new in gsl-1.10: ** License updated to GNU GPL version 3. ** Added support for generalized eigensystems ** Added function gsl_stats_correlation to compute Pearson correlation of two datasets ** Added the new function gsl_sf_expint(n,x) for computing the n-th order exponential integral. ** Added functions gsl_vector_isnonneg and gsl_matrix_isnonneg. ** Added functions gsl_matrix_subrow and gsl_matrix_subcolumn ** Extended Cholesky routines to complex matrices ** Added support in gsl_ieee_set_mode for controlling SSE exceptions and rounding through the MXCSR control word on x86 processors. ** The autoconf macro AM_PATH_GSL has been renamed to AX_PATH_GSL, to avoid conflicts with the autoconf namespace. ** Improved handling of underflow in gsl_eigen_symm. ** The function gsl_multiroot_fdjacobian now returns the error code GSL_ESING if any of the columns of the computed jacobian matrix are zero. This may occur if the step size of the derivative is too small. ** Extended the function gsl_sf_beta_inc(a,b,x) to handle cases where a<0 or b<0. ** Fixed the round-off error estimate in gsl_deriv_{central,backwards, forward} to correctly account for numerical error in the step-size h. ** Fixed gsl_cdf_beta_Pinv, gsl_cdf_gamma_Pinv, gsl_cdf_beta_Pinv to avoid returning spurious values for large parameters when the iteration did not converge. If the iteration cannot converge, GSL_NAN is returned. ** gsl_ran_dirichlet now handles smaller values of alpha[] without underflow, avoiding a NaN in the returned value. ** The SVD routines now avoid underflow in the Schur decomposition for matrices with extremely small values pi/2 and phi < 0. The angular argument is now valid for all phi. Also added the complete elliptic integral gsl_sf_ellint_Pcomp. ** Added a new BFGS minimisation method gsl_multimin_fdfminimizer_vector_bfgs2 based on the algorithm given by R.Fletcher in "Practical Methods of Optimisation" (Second edition). This requires substantially fewer function and gradient evaluations, and supercedes the existing BFGS minimiser. ** The beta functions gsl_sf_beta_e(a,b) and gsl_sf_lnbeta_e(a,b) now handle negative arguments a,b. Added new function gsl_sf_lnbeta_sgn_e for computing magnitude and sign of negative beta values, analagous to gsl_sf_lngamma_sgn_e. ** gsl_cheb_eval_mode now uses the same error estimate as gsl_cheb_eval_err. ** Improved gsl_sf_legendre_sphPlm_e to avoid underflow with large arguments. ** Added updated Knuth generator, gsl_rng_knuthran2002, from 9th printing of "The Art of Computer Programming". Fixes various weaknesses in the earlier version gsl_rng_knuthran. See http://www-cs-faculty.stanford.edu/~knuth/news02.htm ** The functions gsl_multifit_fsolver_set, gsl_multifit_fdfsolver_set and gsl_multiroot_fsolver_set, gsl_multiroot_fdfsolver_set now have a const qualifier for the input vector x, reflecting their actual usage. ** gsl_sf_expint_E2(x) now returns the correct value 1 for x==0, instead of NaN. ** The gsl_ran_gamma function now uses the Marsaglia-Tsang fast gamma method of gsl_ran_gamma_mt by default. ** The matrix and vector min/max functions now always propagate any NaNs in their input. ** Prevented NaN occuring for extreme parameters in gsl_cdf_fdist_{P,Q}inv and gsl_cdf_beta_{P,Q}inv ** Corrected error estimates for the angular reduction functions gsl_sf_angle_restrict_symm_err and gsl_sf_angle_restrict_pos_err. Fixed gsl_sf_angle_restrict_pos to avoid possibility of returning small negative values. Errors are now reported for out of range negative arguments as well as positive. These functions now return NaN when there would be significant loss of precision. ** Corrected an error in the higher digits of M_PI_4 (this was beyond the limit of double precision, so double precision results are not affected). ** gsl_root_test_delta now always returns success if two iterates are the same, x1==x0. ** A Japanese translation of the reference manual is now available from the GSL webpage at http://www.gnu.org/software/gsl/ thanks to Daisuke TOMINAGA. ** Added new functions for basis splines, see the "Basis Splines" chapter in the GSL Reference Manual for details. ** Added new functions for testing the sign of vectors and matrices, gsl_vector_ispos, gsl_vector_isneg, gsl_matrix_ispos and gsl_matrix_isneg. ** Fixed a bug in gsl_sf_lnpoch_e and gsl_sf_lnpoch_sgn_e which caused the incorrect value 1.0 instead of 0.0 to be returned for x==0. ** Fixed cancellation error in gsl_sf_laguerre_n for n > 1e7 so that larger arguments can be calculated without loss of precision. ** Improved gsl_sf_zeta_e to return exactly zero for negative even integers, avoiding less accurate trigonometric reduction. ** Fixed a bug in gsl_sf_zetam1_int_e where 0 was returned instead of -1 for negative even integer arguments. ** When the differential equation solver gsl_odeiv_apply encounters a singularity it returns the step-size which caused the error code from the user-defined function, as opposed to leaving the step-size unchanged. ** Added support for nonsymmetric eigensystems ** Added Mathieu functions * What was new in gsl-1.8: ** Added an error check to trap multifit calls with fewer observations than parameters. Previously calling the multifit routines with n

100*l*l to satisfy he requirement x>>l*l in the asymptotic expansion. ** The scaled bessel function gsl_sf_bessel_In_scaled now handles larger arguments x > 1e7 correctly for n < 150 using the uniform asymptotic expansion instead of the continued fraction expansion. ** The functions gsl_stats_min/max now return NaN if the data contains NaN. Similarly, the functions gsl_stats_min/max_index return the index of the first occurring NaN in the data when it contains a NaN. ** Fixed an invalid memory access that caused incorrect results for the special case in periodic cubic spline interpolation of 3 points. ** Added Debye functions for n=5 and n=6 ** Added the missing functions gsl_spline_name() and gsl_spline_min_size() ** The function gsl_rng_uniform_int(r,n) now returns an error for n=0, which can occur when passing an unsigned integer value of 2^32. * What was new in gsl-1.7: ** Switched gsl_randist_binomial to use the faster binomial random variate TPE algorithm by default. The previous binomial variate algorithm is available as gsl_randist_binomial_knuth. This will result in a different sequence of binomial variates in programs using this function. ** Improved the algorithm for gsl_sf_elljac_e to avoid cancellation errors near quarter periods. ** Fixed the branch selection in gsl_sf_gamma_inc_Q_e to avoid inaccurate results for large a,x where x~=~a. ** The multilinear fitting functions now have forms which accept a user-specified tolerance for the SVD cutoff and return the corresponding effective rank of the design matrix. ** The quadratic solvers in poly/ now handle linear equations gracefully (i.e. quadratrics with a leading coefficient of zero). ** The output of "make check" now only shows test failures by default, to reduce the amount of output. Set the environment variable GSL_TEST_VERBOSE=1 to display all the output. To assist debugging, the test number of each failure is shown in square brackets at the line-end [NNNN]. ** Fixed bugs in gsl_linalg_SV_decomp_jacobi which caused incorrect results for some input matrices. ** Bessel, coulomb, dilogarithm and legendre_H3d functions now use hypot internally to avoid overflow when computing terms like sqrt(1+x*x). ** The 'Usage' chapter of the reference manual now explains how to handle deprecated functions using the GSL_DISABLE_DEPRECATED macro. ** The conflicting enum definitions for 'forward' and 'backward' in gsl_ftt.h and gsl_wavelet.h are deprecated. User code should switch to the new definitions gsl_fft_forward, gsl_fft_backward, gsl_wavelet_forward and gsl_wavelet_backward. Selectively define GSL_DISABLE_DEPRECATED before including the headers to use the new definitions on either or both modules. ** Fixed an error in the the brent minimisation algorithm. Iterations should now follow Brent's original description correctly. ** The bound coulomb function gsl_sf_hydrogenicR_e no longer reports an underflow for exact zeroes of the wavefunction. ** gsl_linalg_SV_decomp_jacobi now reports an error for the unimplemented case M>N) use the LQ decomposition, solving the transpose of the original system. This allows more efficient memory access, and is useful for solving large least-squares problems. ** Fixed a bug in the SYRK and HERK blas functions gsl_blas_{s,d,c,z}syrk and gsl_blas_{c,z}herk which caused invalid memory access for non-square matrices. ** Fixed a bug in gsl_swap_vectors which caused it to return incorrect results when swapping vectors with different strides. ** Corrected the error estimate for gsl_cheb_eval_n_err to use evaluation order instead of the approximation order. ** Improved the reliability of the gsl_sf_gamma_inc family of functions. ** Equal abscissae are now handled gracefully in the cspline and periodic cspline interpolations. ** Removed potential cancellation error in calculation of uniform histogram ranges. ** Improved numerical stability of integration for akima and cspline interpolation. ** Differential equation solvers now handle error codes returned from user-defined functions. ** Improved error estimates in ode-initval solvers, and provide exact derivatives on output. Added new semi-implicit ode-initval solver, gsl_odeiv_step_rk2simp. ** Added missing function definition for gsl_sf_psi_1. ** Fixed the function gsl_sf_expint_Ei_scaled to call gsl_sf_expint_Ei_scaled_e instead of gsl_sf_expint_Ei_e. ** Added cumulative distribution function for exponential power distribution. ** The functions gsl_cdf_beta_P and gsl_cdf_beta_Q now return consistent results of 0 or 1 for out of range values, x<0 and x>1, rather than 0 for left and right tails simultaneously. ** The Jacobi eigensolvers gsl_eigen_jacobi and gsl_eigen_jacobi_invert have new implementations from Golub and Van Loan. ** The standard output and standard error streams are now flushed by the default error handler before the program aborts, in order to ensure that error messages are properly displayed on some platforms. * What was new in gsl-1.5: ** Multifit routines now handle iterations where |f| is already minimised to zero, without division by zero. ** Fixed the singular value tolerance test in the multifit covariance calculation from < to <= to match the original MINPACK code. ** The macro HAVE_INLINE is now tested with #ifdef instead of #if as in versions prior to 1.4, to match the documentation, and the macro GSL_RANGE_CHECK_OFF now works correctly. An alternative macro GSL_RANGE_CHECK={0,1} can be used to control range-checking. ** Fixed a potential array overflow in gsl_ran_landau. ** Fixed a small discrepancy in the tolerance calculation of the one-dimensional brent minimiser. ** Numerical derivatives should now be calculated using the gsl_deriv_forward, gsl_deriv_central and gsl_deriv_backward functions, which accept a step-size argument in addition to the position x. The original gsl_diff functions (without the step-size) are deprecated. ** Corrected documentation for gsl_ran_hypergeometric_pdf() ** The tridiagonal matrix solvers gsl_linalg_solve_symm_tridiag, gsl_linalg_solve_tridiag, gsl_linalg_solve_symm_cyc_tridiag, gsl_linalg_solve_cyc_tridiag now use the GSL_ERROR macro to report errors, instead of simply returning an error code. The arguments to these functions must now use exact lengths with no additional elements. For cyclic systems all vectors must be of length N, for tridiagonal systems the offdiagonal elements must be of length N-1. ** The singular value decomposition routines gsl_linalg_SV_decomp and gsl_linalg_SV_decomp_mod now handle the SVD of a column vector (N=1, arbitrary M), which can occur in linear fitting. ** Restored missing header files gsl_const_mks.h and gsl_const_cgs.h. The incorrect values of the electrical units for gsl_const_cgs (VACUUM_PERMEABILITY and VACUUM_PERMITTIVITY) have been removed. ** Fixed gsl_linalg_SV_decomp() to avoid an infinite loop when computing the SVD of matrices containing Inf and Nan. ** Fixed gsl_linalg_balance_columns() to avoid an infinite loop when rescaling matrices containing Inf and NaN. ** Fixed header file to include declarations for error codes in inline versions of gsl_sf_log functions ** Fixed header file to include new MKSA and CGSM header files. ** Added Stefan-Boltzmann constant and Thomson cross section to physical constants * What was new in gsl-1.4: ** Added cumulative distribution functions and their inverses for the continuous random distributions including: gaussian, lognormal, gamma, beta, cauchy, laplace, chisq, exponential, gumbel, weibull, F-distribution, t-distribution, logistic, pareto and rayleigh. ** Added faster binomial random variates using the TPE rejection algorithm, in the function gsl_randist_binomial_tpe. ** Added new functions gsl_rng_fwrite and gsl_rnd_fread for storing the state of random number generators in a file. ** Added a new function gsl_combination_memcpy() ** Corrected values of electrical constants in CGS units. To take account of different electrical systems of units the values are now prefixed by GSL_CONST_MKSA (for the SI Metre, Kilogram, Second, Ampere system) or GSL_CONST_CGSM (for the Centimetre, Gram, Second, Magnetic system with the Gauss as the fundamental unit of magnetic field strength). The previous GSL_CONST_MKS and GSL_CONST_CGS prefixes have been removed, as have the permeability and permittivity constants in the CGS system since this uses different defining equations. ** Fixed bugs in the random number generators gsl_rng_fishman18, gsl_rng_fishman2x, and gsl_rng_knuthran2 which caused them to return incorrect results. Minor corrections were made to the parameters in the other Knuth generators borosh13, coveyou, fishman20, lecuyer21, and waterman14. ** Fixed a missing transpose bug in the gsl_linalg_QR_QRsolve and gsl_linalg_QRPT_QRsolve routines which were computing the solution to Q^T R x = b instead of Q R x = b. ** Fixed gsl_sf_gammainv to return zero instead of a domain error for arguments corresponding to singularities in gamma. ** Fixed a bug in the simplex minimization algorithm which caused it to fail to find the second highest point correctly when searching the set of simplex points. ** Fixed a bug in the conjugate gradient minimizers conjugate_pr, conjugate_fr and vector_bgfs which caused the search directions to be updated incorrectly. ** Fixed a bug in gsl_sf_psi_1_int(1) which caused it to return the incorrect sign for psi(1,1). ** Fixed the simulated annealing routine gsl_siman_solve to use the parameter iters_fixed_T for the number of iterations at fixed temperature instead of n_tries. ** Fixed a bug in gsl_combination_valid which caused it to return the incorrect status. ** Fixed a bug in gsl_permutation_canonical_to_linear which caused the output to always be zero, and the input permutation to be incorrectly replaced by the output. ** Fixed a bug is gsl_ran_discrete which could cause uninitialised data to be returned for some distributions. ** Fixed the dependencies for gsl_chebyshev.h to include gsl_math.h. ** Fixed a bug in gsl_complex_arccsc_real which caused it to return the incorrect sign for the imaginary part when -110. ** Improved the accuracy of gsl_sf_coupling_3j for large arguments. ** Improved the performance of gsl_sf_choose(m,n) by separating the calculations for small and large arguments. ** On platforms without IEEE comparisons gsl_{isnan,isinf,finite} will fall back to the system versions of isnan, isinf and finite if available. ** gsl_linalg_householder_hv now uses BLAS routines internally ** The script configure.in is now compatible with autoconf-2.50 and later. ** Reduced the memory usage of the multifit algorithms from MxM to MxN for large M by performing the QR decomposition of the Jacobian in-place. ** IEEE modes now use the C99 fenv.h functions when platform spectific functions are not available. * What was new in gsl-1.3: ** Changed interface for gsl_sf_coupling_6j...(...). The old functions actually calculated 6j for a permutation of the arguments (that related to Racah W). This was incorrect and not consistent with the documentation. The new versions calculate < {a,b,c}, {d,e,f} >, as stated in the documentation. The old versions are still available as gsl_sf_coupling_6j_INCORRECT...(...), though they are deprecated and will be removed at some point in the future. ** Added new functions for computing Em(x)=exp(-x)*Ei(x), the modified (scaled) form of the exponential integral, gsl_sf_expint_E1_scaled, gsl_sf_expint_E2_scaled, gsl_sf_expint_Ei_scaled. ** Fixed compilation problems with gcc -ansi and other ANSI compilers. ** Fixed uninitialized memory access in the Niederreiter quasi-random number generator. ** Fixed the eigenvalue routines to prevent an infinite loop for Inf or NaN entries in matrix. ** Fixed a bug in the multifit and multiroots allocation routines which cause them to fail to report some out of memory conditions. ** Fixed a bug in the seeding for the random number generator gsl_rng_taus2 which affected a small number of seeds. ** Modified the complex householder transforms to avoid division by zero, which could cause NaNs to be returned by the gsl_eigen_hermv eigenvalue decomposition. ** The Nelder-Mead simplex algorithm for multidimensional minimisation has been added. ** The random number distributions now include the Dirichlet and Multinomial distributions. ** Added a new function gsl_fcmp for approximate comparison of floating point numbers using Knuth's algorithm. ** Added new functions gsl_ldexp and gsl_frexp as portable alternatives to ldexp() and frexp(). ** Fixed a bug in gsl_linalg_bidiag_unpack_B which was returning incorrect results for the superdiagonal. ** Fixed a bug in the acceptance condition for simulated annealing ** Ordinary differential equations can now be solved using a different absolute error for each component with gsl_odeiv_control_scaled_new(). ** Upgraded to libtool-1.4.3 * What was new in gsl-1.2: ** Added new functions for combining permutations, converting between cyclic and linear representations, and counting cycles and inversions. ** New multiroot functions now allow access to the current values of f and dx. ** The default error handler now outputs a explanatory message before aborting. ** Extended gsl_linalg_SV_decomp to handle exact zeroes in the singular values, and added tests for 3x3 matrices. ** Fixed a bug in gsl_linalg_SV_decomp which caused singular values to be sorted incorrectly. ** Fixed a bug in gsl_linalg_solv_symm_cyc_tridiag which caused it to produce incorrect results. ** Added nonsymmetric tridiagonal solvers gsl_linalg_solve_tridiag and gsl_linalg_solve_cyc_tridiag. ** The declarations used to export static objects can now be controlled through a macro GSL_VAR and the header file . ** The simulated annealing routine gsl_siman_solve now keeps track of the best solution so far. ** The values of the physical constants have been updated to the CODATA 1998 recommendations. ** Added new physical constants, newton, dyne, joule, erg and power-of-ten prefixes, Mega, Giga, Tera, etc. ** The error estimate for the elliptic function gsl_sf_ellint_Kcomp_e has been improved to take account of numerical cancellation for small arguments. ** The domain of gsl_sf_psi_1piy has been extended to negative y. ** Fixed memory leak in the Chebyshev module. ** The seeding procedure of mt19937 has been updated to the latest version from Makoto Matsumoto and Takuji Nishimura (Jan 2002). The original seeding procedure is available through the generator gsl_rng_mt19937_1999. ** A new random number generator gsl_rng_taus2 has been added to correct flaws in the seeding procedure of gsl_rng_taus, as described in an erratum to the original paper of P. L'Ecuyer. ** Added missing declaration for the generator gsl_rng_mt_19937_1998. ** Added missing quasi-random number generator function gsl_qrng_init. ** Removed unnecessary endpoint subtraction in chebyshev-based QUADPACK routines to avoid possible loss of precision. ** Fixed bug in gsl_interp_cspline_periodic which caused a discontinuity in the derivative near the boundary. ** The function gsl_min_fminimizer_minimum has been renamed to gsl_min_fminimizer_x_minimum for consistency (the old function name is still available but is deprecated). Additional functions have been added for accessing the function values at the minimum and endpoints of the bounding interval. ** The KNOWN-PROBLEMS file of "make check" failures has been replaced by a BUGS file, since we now require "make check" to work correctly for stable releases. * What was new in gsl-1.1.1: ** Fixes to histogram2d stat functions ** Added missing prototypes for complex LU determinant functions ** Improved error handling in multifit routines ** Added check to avoid division by zero for rank-deficient matrix in multifit iteration * What was new in gsl-1.1: ** The permutation module now includes a copy function gsl_permutation_memcpy ** The implementation of gsl_sf_gamma_inc has been improved and now avoids problems caused by internal singularities which occurred in the series expansion for some combinations of parameters. ** IEEE comparisons of infinities and NaNs are tested during the configure stage and the functions gsl_isnan, gsl_isinf and gsl_finite are only compiled on platforms which support the necessary tests. ** The histogram routines now include a sum function, gsl_histogram_sum for computing the total bin sum, and additional statistics functions for 2d histograms. ** Internal error checking of user-defined functions has been improved in the multiroots functions. ** Constants now include the Bohr Radius and Vacuum Permittivity. ** Range checking is now turned off when building the library, but is still on by default when compiling user applications. ** A combinations directory has been added for generating combinations (n,k). ** The gamma function now returns exact values for integer arguments. ** Fixed bugs in gsl_sf_hyperg_1F1_int and gsl_sf_hyperg_1F1. ** Fixed internal error handling in gsl_sf_laguerre_n to allow recovery from overflow. ** Several routines for handling divided difference polynomials have been added to the poly/ directory. ** The interpolation routines now include polynomial interpolation, based on divided-differences. ** Added new random number generators from Knuth's Seminumerical Algorithms, 3rd Edition: borosh13, coveyou, fishman18, fishman20, fishman2x, knuthran, knuthran2, lecuyer21, waterman14. ** Changed divisor in random number generator gfsr4 from 2^32-1 to 2^32 to prevent exact value of 1.0 from being returned, as specified in the documentation. * What was new in gsl-1.0: ** First general release. ** Increased the maximum number of iterations in gsl_poly_complex_solve() from 30 to 60. * What was new in gsl-0.9.4: ** Reorganized the multmin functions to use the same interface as the other iterative solvers. ** Added histogram _alloc functions for consistency, in addition to the existing _calloc functions. ** Renamed all the gsl_multimin functions to be consistent with the rest of the library. An underscore has been removed from _minimizer in all the function names. ** Renamed the function gsl_sf_coulomb_CL_list to gsl_sf_coulomb_CL_array ** A bug in the multimin functions where the function parameters (params) were omitted has been fixed. ** A bug in the nonlinear minimization routines has been fixed, which could prevent the algorithms from converging. Additional tests from the NIST reference datasets have been added and these now agree with MINPACK. ** All the physical constants and conversion factors are now defined as real numbers to avoid potential problems with integer arithmetic. ** The ODE evolution routines now allow for negative step sizes, and integrating backwards as well as forwards. ** The implicit Burlisch-Stoer ODE algorithm 'bsimp' now detects singularities and forces a reduction in step size, preventing runaway instabilities. ** Fixed a bug in the ODE evolution function gsl_odeiv_evolve_apply which could cause an erroneous value to be returned if the step size is reduced on the last step. * What was new in gsl-0.9.3: ** Routines for complex LU decomposition are now available, allowing the solution of systems of equations with complex coefficients. ** Matrix views of vectors now correctly require a unit stride for the original vector. ** Permutations can now be applied to complex arrays and vectors. ** gsl_sf_pow_int now handles the case x = 0, n < 0 ** The static versions of inline functions can now be hidden by defining the preprocessor macro HIDE_INLINE_STATIC. This is needed for some compilers. ** The original seeding procedure of mt19937 is available through the generator gsl_rng_mt19937_1998. The seeding procedure was flawed, but is available for compatibility. ** Added missing functions gsl_complex_div_real and gsl_complex_div_imag. ** Missing functions for constant vector and matrix views have now been added. ** Statistical calculations for histograms are now available, and the gsl-histogram command also displays the histogram mean and standard deviation. ** The behavior of GSL_IEEE_MODE for denormalized exceptions has been fixed on Openbsd and Netbsd. ** A pkg-config file gsl.pc is included in the distribution ** The reference manual can now be printed in @smallbook format without overflow. * What was new in gsl-0.9.2: ** Vector and matrix views are now compliant with the ANSI standard. ** Added Lambert functions gsl_sf_lambert_W0, gsl_sf_lambert_Wm1. ** The reference manual now uses the GNU Free Documentation License. ** Fixed a couple of bugs in the SVD routines. ** Macros for Infinity and Nan now work correctly with Microsoft Visual C++, and a bug in the config.h file for the finite() function has been fixed. ** Redundant entries in the test suite for the complex math functions have been removed, making the distribution size smaller. ** Installed programs gsl-randist and gsl-histogram now use shared libraries. * What was new in gsl-0.9.1: ** The single precision ffts now uses float throughout, rather than mixing float and double. ** The random number distributions now include the Landau distribution. ** The fft function interface has been reorganized, with workspaces separate from wavetables to eliminate unnecessary recomputation of trigonometric factors. ** The gsl_interval type has been eliminated and replaced by two double arguments for simplicity. ** The order of the arguments to the minimization routines is no more logical, with function values assocatied with x-values. ** Modified initialization of vector and matrix views to work with the SunPro compiler. ** Renamed gsl_Efunc_t to gsl_siman_Efunc_t, in accordance with namespace conventions. ** Improved accuracy and fixed bugs in gsl_sf_hyperg_1F1, gsl_sf_bessel_I0_scaled, gsl_sf_erfc, gsl_sf_log_erfc, gsl_sf_legendre_Q0 and gsl_sf_legendre_Q1, and gsl_sf_zeta. ** Improved IEEE compliance of special functions, overflows now return Inf and domain errors return NaN. ** Improved checking for underflows in special functions when using extended precision registers * What was new in gsl-0.9: ** There is a new system of vector and matrix views. Any code using vector and matrix views will need to be updated. ** The order of arguments of the view functions involving strides have been changed to be consistent with the rest of the library. ** The ode solvers have been reorganized. ** There are new eigensystem routines for real symmetric and complex hermitian matrices. ** The linear algebra directory now includes functions for computing symmetric tridiagonal decompositions and bidiagonal decompositions. ** The svd routines now include the Golub-Reinsch and Modified Golub-Reinsch algorithms in addition to the Jacobi algorithm. ** The interpolation directory has been reorganized and a higher-level "spline" interface has been added which simplifies the handling of interpolation arguments. ** IEEE support is now available on OpenBSD. * What was new in gsl-0.8: ** The build process now uses the latest libtool and automake. ** The library should now compile with Microsoft Visual C++. ** Portable versions of the isinf, isnan and finite functions are available as gsl_isinf(x), gsl_isnan(x) and gsl_finite(x). ** The definitions of GSL_POSINF, GSL_NEGINF and GSL_NAN no longer cause divisions by zero during compilation. ** The gsl_interp_obj has been renamed to gsl_interp. ** The poly_eval and pow_int functions have been moved from the specfunc directory to the poly and sys directories. ** The Chebyshev functions are now available as an independent module in their own directory. ** The error handling conventions have been unified across the library. This simplifies the use of the special functions. ** A full CBLAS implementation is now included for systems where ATLAS has not been installed. The CBLAS library can also be used independently of GSL. The organisation of the BLAS directories has been simplified. ** IEEE support for HPUX-11, NetBSD, Apple Darwin and OS/2 are now included. ** The library now includes implementations of log1p, expm1, hypot, acosh, asinh, atanh for platforms which do not provide them. ** The convention for alloc and set functions has changed so that they are orthogonal. After allocating an object it is now necessary to initialize it. ** There is a new module for estimating numerical derivatives of functions ** There is a new module for handling data with ntuples ** The histogram lookup functions are now optimized for the case of uniform bins, and include an inline binary search for speed. ** The Chebyschev coefficients for the QAWO algorithm are now precomputed in a table for efficiency, rather than being computed on the fly. ** There are several new sorting functions for selecting the k-th smallest or largest elements of a dataset. ** Iterator functions are now available for permutations, gsl_permutation_next and gsl_permutation_prev. ** The function gsl_complex_xy has been renamed gsl_complex_rect ** The API for simulated annealing has been changed to support search spaces in which the points cannot be represented as contiguous-memory data structures. gsl_siman_solve() now takes three extra arguments: a copy constructor, a copy function and a destructor, allowing gsl_siman_solve() to do its work with linked data structures. If all three of these function pointers are NULL, then the traditioanl approach of using malloc(), memcpy(), and free() with the element size is used. * What was new in gsl-0.7: ** Linux/PowerPC should now be well supported. ** Header files for common physical constants have been added. ** Functions linear and nonlinear regression in one or more dimensions are now available. ** Vector and matrix views now have access to the address of the underlying block for compatibility with VSIPL (www.vsipl.org). ** There is a new library for generating low-discrepancy quasi-random sequences. ** The seeding procedure of the default random number generator MT19937 has been updated to match the 10/99 release of the original code. This fixes a weakness which occurred for seeds which were powers of 2. ** The blas library libgslblasnative has been renamed libgslblas to avoid confusion with system blas library * What was new in gsl-0.6: ** The library is now installed as a single shared or static libgsl file using libtool. ** The gsl-config script now works. There is also a gsl.m4 file which people can use in their configure scripts. ** All header files are now in installed as pkginclude headers in a gsl/ subdirectory. ** The header files now use extern "C" to allow them to be included in C++ programs ** For consistency the following functions have been renamed, gsl_vector_copy (dest, src) is now gsl_vector_memcpy (dest, src) gsl_rng_cpy (dest, src) is now gsl_rng_memcpy (dest, src) gsl_matrix_copy_row (v,m,i) is now gsl_matrix_get_row (v,m,i) gsl_matrix_copy_col (v,m,j) is now gsl_matrix_get_col (v,m,j) gsl_vector_swap is now gsl_vector_swap_elements gsl_vector_swap_cols is now gsl_vector_swap_columns gsl_vector_swap_row_col is now gsl_vector_swap_row_column and the vector/matrix view allocation functions have been simplified. ** A new sort directory has been added for sorting objects and vectors. ** A permutation directory has been added for manipulating permutations ** Statistics functions now support a stride argument for generality, and also support weighted samples and a covariance function. ** The names of the statistics functions have been reorganized for improved clarity. Consult manual for details. ** The environment variable GSL_IEEE_MODE now uses "," as a separator instead of ";" ** The autogen.sh script, mostly for use by developers who use the CVS repository, now does not run configure. ** The histogram directory now has additional functions for copying and comparing histograms, performing arithmetic on histograms and finding maximum and minimum values. Corresponding functions have been added for vectors and matrices. ** The linear algebra directory supports additional methods, including rectangular QR, rectangular QRPT and Cholesky decomposition. ** Complex arithmetic (+,-,*,/) and complex elementary functions (sqrt, log, exp, sin, cos, tan, arcsin, arccos, arctan, sinh, cosh, tanh, arcsinh, arccosh, arctanh) are now supported. ** Multidimensional minimization methods are now available. ** The special functions directory now includes a routine for computing the value of the incomplete beta function. * Was new in gsl-0.5: ** There is now a KNOWN-PROBLEMS file which lists compilation problems and test failures which are known to the developers. ** Many improvements have been made to the special functions directory. ** The extrapolations from the Levin u-transform are now more reliable. ** Linear algebra and Eigensystem routines are now available. ** ODE solvers are now available. ** Multidimensional root finding algorithms are available. ** Minimization now keeps track of function values. ** Matrices and vectors now use a BLAS compatible format, and have a separate memory handling layer (gsl_block). ** Roots of general polynomials can now be found using gsl_poly_complex_solve ** IEEE modes support on Sparclinux, Tru64, AIX and IRIX ** We have added the second generation RANLUX generators RANLXS and RANLXD ** Minimization algorithms are available (one-dimensional) ** Documentation now works out of the box with the standard Texinfo. ** Full reimplementation of the QUADPACK integration library ** Introduced THANKS file. We appreciate all patches from people on the net, even those which are too small to warrant adding the author to the AUTHORS file. The THANKS file should include everyone who sent in patches. They should also be mentioned in the ChangeLog entry. * What was new in gsl-0.4.1: ** Two changes not making their way into the documentation A couple of things are not getting into the docs, so here are the errata: *** The FFT routines now take a stride parameter. Passing 1 for the stride will make them behave as documented. *** The complex numbers are now an opaque type, and no assumptions can be made about the format in which they are stored (they are not stored as a simple structure anymore, since that is not portable). The type is now gsl_complex (or gsl_complex_long_double or gsl_complex_float), and the macros to access them are GSL_REAL(z) GSL_IMAG(z) GSL_COMPLEX_P_REAL(zp) GSL_COMPLEX_P_IMAG(zp) GSL_COMPLEX_EQ(z1,z2) GSL_SET_COMPLEX(zp,x,y) GSL_SET_REAL(zp,x) GSL_SET_IMAG(zp,y) This change in the complex number API makes it important that you start working with 0.4.1 or later. ** 0.4.1 is being released in occasion of the Red Hat 6.0 release. The specfunc module is still in an alpha state; if you run "make check" in the specfunc directory you will see that some tests still fail. ** Most Alpha specific problems have been fixed. In particular the random number generators rand48 and ranf now work on the Alpha ** Additional random number distributions: Rayleigh distribution n-dimensional spherical distribution (ie, points at random on an n-dimensional sphere) Gaussian tail distribution (ie, choosing values from a gaussian distribution subject to a constraint that they be larger than some fixed value, eg 5 sigmas) Walker's algorithm for arbitrary discrete distributions * What was new in gsl-0.4: ** A single libgsl.a file is built in the top level directory and installed, instead of separate .a files for each subdirectory. ** The parts of the complex struct gsl_complex, .real and .imag, are not supported anymore. The macros GSL_REAL(z) and GSL_IMAG(z) do the same job. All complex numbers are considered as packed arrays of floating point numbers, for portability since the layout of structs or arrays of structs is not guaranteed. ** The interface for matrices and vectors has changed. Vectors now support strides, and can be used to access rows and columns of a matrix. Many more types are available (float, double, long double, int, long, short, char, signed and unsigned, plus complex floats, doubles and long doubles) due to improvements in our preprocessor template system. ** The random number generators have a completely new thread-safe interface and have moved from the random directory to the rng directory. Any program using random numbers will have to be updated. You can also choose generators and seeds using the environment variables GSL_RNG_TYPE and GSL_RNG_SEED. ** Some additional random number distributions have been added in the randist directory. The available distributiosn are: bernoulli, beta, binomial, cauchy, chisq, erlang, exponential, fdist, flat, gamma, gauss, geometric, levy, logistic, lognormal, nbinomial, pareto, poisson, sphere, tdist, twosidedexp, weibull. ** The FFT interface has be extended to support strides, but the implementation hasn't been finished for all the cases yet, The FFT allocation functions now return a pointer to a newly allocated wavetable struct, instead of taking the pointer to an existing struct as an argument. e.g. status = gsl_fft_wavetable_alloc(n, w) is now w = gsl_fft_wavetable_alloc(n) in accordance with usual practice ** The statistics directory now works with all the builtin types. It has a new function for computing the lag1-autocorrelation and an extra set of numerical accuracy tests from NIST as part of 'make check'. ** The simulated annealing routines no longer set the random number seed with the time of day. You'll need to reseed the generator yourself if you want subsequent runs to use different random numbers. ** Work is in progress on a reimplementation of QUADPACK in the `integration' subdirectory, but it is not finished yet. ** Work is in progress on reimplementations of the VEGAS and MISER Monte Carlo algorithms in the monte' subdirectory. They work just fine, but the code is still evolving. ** Work has started on a portable blas system in the `blas' subdirectory. ** You can now set the IEEE arithmetic mode for your programs from the environment variable GSL_IEEE_MODE by calling the function gsl_ieee_env_setup(). Currently this only works with the Linux kernel, HP-UX, SunOS4 and Solaris. ** There are some simple spline interpolation functions in the `interp' subdir. ** The NEWS file now uses outline mode, like the Emacs NEWS file * This covers changes made *after* the gsl-0.2 snapshot ** Added several new modules: histogram, integration, matrix, specfunc and vectors. ** Changed libgsl_statisctics.a to libgslstatistics.a and libgsl_siman.a to libgslsiman.a, since most of the packages don't have the underscore. Users will have to remove the old files, unless they do a "make uninstall" on the previous release before they install this new one. ** Changes to the random number suite Incorporated the gauss, poisson and exponential distributions in the standard libgslrandom.a Local variables: mode: outline paragraph-separate: "[ ]*$" end: