1 * What is new in gsl-1.11:
3 ** The GSL repository and bug database are now hosted at Savannah
4 http://savannah.gnu.org/projects/gsl/
6 ** Upgraded to latest libtool, autoconf and automake (libtool-2.2,
7 autoconf-2.61, automake-1.10.1)
9 ** Fixed underflow in ODE adaptive step size controller that could
10 cause step size to decrease to zero (bug #21933).
12 ** Improved the handling of the asymptotic regime in gsl_sf_bessel_jl.
14 ** Improved the handling of large arguments in cumulative distribution
15 functions using the incomplete beta function, such as gsl_cdf_fdist_P.
17 ** Fixed overflow bug in gsl_cdf_hypergeometric_{P,Q} for large
18 arguments (bug #22293).
20 ** gsl_ran_gaussian_ziggurat now handles generators with different
21 ranges explicitly, to minimise the number of function calls
22 required (bug #21820). Also fixes bug #22446 (rng limit in
25 ** Added missing error terms in gsl_sf_exp_mult_e10_e to prevent
26 the error being underestimated (bug #22041).
28 ** Updated some constants to the CODATA 2006 values.
30 ** The hypergeometric function gsl_sf_hyperg_2F1 now handles the case
33 ** Fixed a bug in the brent minimiser which prevented optimal convergence.
35 ** Added functions for evaluating complex polynomials
37 ** The convergence condition for gsl_multiroots_test_delta now accepts
40 ** Improved functions gsl_ldexp and gsl_frexp to handle the full range
41 of double precision numbers in all cases.
43 ** Added new quasi random generators gsl_qrng_halton and
44 gsl_qrng_reversehalton which support dimensions up to 1229.
46 ** Added function gsl_multifit_linear_residuals for computing the
49 * What was new in gsl-1.10:
51 ** License updated to GNU GPL version 3.
53 ** Added support for generalized eigensystems
55 ** Added function gsl_stats_correlation to compute Pearson correlation
58 ** Added the new function gsl_sf_expint(n,x) for computing the n-th
59 order exponential integral.
61 ** Added functions gsl_vector_isnonneg and gsl_matrix_isnonneg.
63 ** Added functions gsl_matrix_subrow and gsl_matrix_subcolumn
65 ** Extended Cholesky routines to complex matrices
67 ** Added support in gsl_ieee_set_mode for controlling SSE exceptions
68 and rounding through the MXCSR control word on x86 processors.
70 ** The autoconf macro AM_PATH_GSL has been renamed to AX_PATH_GSL, to
71 avoid conflicts with the autoconf namespace.
73 ** Improved handling of underflow in gsl_eigen_symm.
75 ** The function gsl_multiroot_fdjacobian now returns the error code
76 GSL_ESING if any of the columns of the computed jacobian matrix are
77 zero. This may occur if the step size of the derivative is too small.
79 ** Extended the function gsl_sf_beta_inc(a,b,x) to handle cases where
82 ** Fixed the round-off error estimate in gsl_deriv_{central,backwards,
83 forward} to correctly account for numerical error in the step-size h.
85 ** Fixed gsl_cdf_beta_Pinv, gsl_cdf_gamma_Pinv, gsl_cdf_beta_Pinv to
86 avoid returning spurious values for large parameters when the
87 iteration did not converge. If the iteration cannot converge, GSL_NAN
90 ** gsl_ran_dirichlet now handles smaller values of alpha[] without
91 underflow, avoiding a NaN in the returned value.
93 ** The SVD routines now avoid underflow in the Schur decomposition for
94 matrices with extremely small values <O(1e-150).
96 ** gsl_complex_pow now returns 0^0=1 (instead of zero) to match the usual
97 pow function, and handles z^(1,0) and z^(-1,0) as special cases.
99 ** Fixed a bug in the set function for multifit lmder solver so that
100 previous values are cleared correctly.
102 ** Improved the function gsl_log1p to prevent possible loss of
103 accuracy caused by optimisations.
105 ** Improved the convergence test in the Lambert functions to take
106 account of finite precision and avoid possible failure to converge.
108 ** The configure script no longer redefines finite() to isfinite() as
109 a workaround for missing finite(), as this caused problems on Solaris.
110 If finite() is not present gsl_finite() will be used instead.
112 ** Improved the accuracy of the generalised laguerre polynomials for
113 large n when alpha=0.
115 ** The functions gsl_{isnan,isinf,finite} will now always use the
116 system versions of isnan, isinf and finite if they are available.
117 Previously the portable GSL implementations were used whenever the
118 platform supported IEEE comparisons. The portable gsl_isinf function
119 now returns -1 instead of +1 for -Inf, in line with recent versions of
122 * What was new in gsl-1.9:
124 ** Fixed the elliptic integrals F,E,P,D so that they have the correct
125 behavior for phi > pi/2 and phi < 0. The angular argument is now
126 valid for all phi. Also added the complete elliptic integral
129 ** Added a new BFGS minimisation method gsl_multimin_fdfminimizer_vector_bfgs2
130 based on the algorithm given by R.Fletcher in "Practical Methods of
131 Optimisation" (Second edition). This requires substantially fewer
132 function and gradient evaluations, and supercedes the existing BFGS
135 ** The beta functions gsl_sf_beta_e(a,b) and gsl_sf_lnbeta_e(a,b) now
136 handle negative arguments a,b. Added new function gsl_sf_lnbeta_sgn_e
137 for computing magnitude and sign of negative beta values, analagous to
138 gsl_sf_lngamma_sgn_e.
140 ** gsl_cheb_eval_mode now uses the same error estimate as
143 ** Improved gsl_sf_legendre_sphPlm_e to avoid underflow with large
146 ** Added updated Knuth generator, gsl_rng_knuthran2002, from 9th
147 printing of "The Art of Computer Programming". Fixes various
148 weaknesses in the earlier version gsl_rng_knuthran. See
149 http://www-cs-faculty.stanford.edu/~knuth/news02.htm
151 ** The functions gsl_multifit_fsolver_set, gsl_multifit_fdfsolver_set
152 and gsl_multiroot_fsolver_set, gsl_multiroot_fdfsolver_set now have a
153 const qualifier for the input vector x, reflecting their actual usage.
155 ** gsl_sf_expint_E2(x) now returns the correct value 1 for x==0,
158 ** The gsl_ran_gamma function now uses the Marsaglia-Tsang fast gamma
159 method of gsl_ran_gamma_mt by default.
161 ** The matrix and vector min/max functions now always propagate any
164 ** Prevented NaN occuring for extreme parameters in
165 gsl_cdf_fdist_{P,Q}inv and gsl_cdf_beta_{P,Q}inv
167 ** Corrected error estimates for the angular reduction functions
168 gsl_sf_angle_restrict_symm_err and gsl_sf_angle_restrict_pos_err.
169 Fixed gsl_sf_angle_restrict_pos to avoid possibility of returning
170 small negative values. Errors are now reported for out of range
171 negative arguments as well as positive. These functions now return
172 NaN when there would be significant loss of precision.
174 ** Corrected an error in the higher digits of M_PI_4 (this was beyond
175 the limit of double precision, so double precision results are not
178 ** gsl_root_test_delta now always returns success if two iterates are
181 ** A Japanese translation of the reference manual is now available
182 from the GSL webpage at http://www.gnu.org/software/gsl/ thanks to
185 ** Added new functions for basis splines, see the "Basis Splines"
186 chapter in the GSL Reference Manual for details.
188 ** Added new functions for testing the sign of vectors and matrices,
189 gsl_vector_ispos, gsl_vector_isneg, gsl_matrix_ispos and
192 ** Fixed a bug in gsl_sf_lnpoch_e and gsl_sf_lnpoch_sgn_e which caused
193 the incorrect value 1.0 instead of 0.0 to be returned for x==0.
195 ** Fixed cancellation error in gsl_sf_laguerre_n for n > 1e7 so that
196 larger arguments can be calculated without loss of precision.
198 ** Improved gsl_sf_zeta_e to return exactly zero for negative even
199 integers, avoiding less accurate trigonometric reduction.
201 ** Fixed a bug in gsl_sf_zetam1_int_e where 0 was returned instead of
202 -1 for negative even integer arguments.
204 ** When the differential equation solver gsl_odeiv_apply encounters a
205 singularity it returns the step-size which caused the error code from
206 the user-defined function, as opposed to leaving the step-size
209 ** Added support for nonsymmetric eigensystems
211 ** Added Mathieu functions
213 * What was new in gsl-1.8:
215 ** Added an error check to trap multifit calls with fewer observations
216 than parameters. Previously calling the multifit routines with n<p
217 would cause invalid memory access.
219 ** Added the Debye unit to physical constants.
221 ** Added cumulative distribution functions for the discrete
222 distributions, including binomial, poisson, geometric, negative
223 binomial, pascal and hypergeometric.
225 ** Added the functions gsl_cdf_beta_{Pinv,Qinv} and
226 gsl_cdf_fdist_{Pinv,Qinv} for computing the inverse of the cumulative
227 beta and F distributions.
229 ** Added the multilinear fit estimator function gsl_multifit_linear_est
230 for computing model values and their errors.
232 ** Avoid division by zero in gsl_multimin_fdfminimizer_vector_bfgs
233 if the step-size becomes too small.
235 ** Users on DEC Alpha systems will need to specify their desired IEEE
236 arithmetic options via CFLAGS when building the library, as these are
237 no longer added automatically.
239 ** Added new random variate generators gsl_ran_gaussian_ziggurat
240 and gsl_ran_gamma_mt for the Gaussian and Gamma distributions based on
241 the Marsaglia-Tsang ziggurat and fast gamma methods.
243 ** Improved the speed of the exponential power distribution
246 ** Improved the speed of the Gaussian ratio method by adding quadratic
247 bounds in gsl_ran_gaussian_ratio_method.
249 ** Added an extra term to the taylor series of the synchrotron
250 functions gsl_sf_synchrotron_1 and gsl_sf_synchrotron_2 for small x to
251 ensure smooth matching with the chebyshev expansion.
253 ** The binomial pdf gsl_ran_binomial_pdf now handles the cases p=0
254 and p=1 and is more accurate for the case of small p with k=0.
256 ** Fixed the spherical bessel function gsl_sf_bessel_jl_e) to limit
257 the use of gsl_sf_bessel_Jnu_asympx_e to the range x>100*l*l to
258 satisfy he requirement x>>l*l in the asymptotic expansion.
260 ** The scaled bessel function gsl_sf_bessel_In_scaled now handles
261 larger arguments x > 1e7 correctly for n < 150 using the uniform
262 asymptotic expansion instead of the continued fraction expansion.
264 ** The functions gsl_stats_min/max now return NaN if the data contains
265 NaN. Similarly, the functions gsl_stats_min/max_index return the index
266 of the first occurring NaN in the data when it contains a NaN.
268 ** Fixed an invalid memory access that caused incorrect results for
269 the special case in periodic cubic spline interpolation of 3 points.
271 ** Added Debye functions for n=5 and n=6
273 ** Added the missing functions gsl_spline_name() and
274 gsl_spline_min_size()
276 ** The function gsl_rng_uniform_int(r,n) now returns an error for n=0,
277 which can occur when passing an unsigned integer value of 2^32.
279 * What was new in gsl-1.7:
281 ** Switched gsl_randist_binomial to use the faster binomial random
282 variate TPE algorithm by default. The previous binomial variate
283 algorithm is available as gsl_randist_binomial_knuth. This will
284 result in a different sequence of binomial variates in programs using
287 ** Improved the algorithm for gsl_sf_elljac_e to avoid cancellation
288 errors near quarter periods.
290 ** Fixed the branch selection in gsl_sf_gamma_inc_Q_e to avoid
291 inaccurate results for large a,x where x~=~a.
293 ** The multilinear fitting functions now have forms which accept a
294 user-specified tolerance for the SVD cutoff and return the
295 corresponding effective rank of the design matrix.
297 ** The quadratic solvers in poly/ now handle linear equations
298 gracefully (i.e. quadratrics with a leading coefficient of zero).
300 ** The output of "make check" now only shows test failures by default,
301 to reduce the amount of output. Set the environment variable
302 GSL_TEST_VERBOSE=1 to display all the output. To assist debugging,
303 the test number of each failure is shown in square brackets at the
306 ** Fixed bugs in gsl_linalg_SV_decomp_jacobi which caused
307 incorrect results for some input matrices.
309 ** Bessel, coulomb, dilogarithm and legendre_H3d functions now use
310 hypot internally to avoid overflow when computing terms like
313 ** The 'Usage' chapter of the reference manual now explains how to
314 handle deprecated functions using the GSL_DISABLE_DEPRECATED macro.
316 ** The conflicting enum definitions for 'forward' and 'backward' in
317 gsl_ftt.h and gsl_wavelet.h are deprecated. User code should switch
318 to the new definitions gsl_fft_forward, gsl_fft_backward,
319 gsl_wavelet_forward and gsl_wavelet_backward. Selectively define
320 GSL_DISABLE_DEPRECATED before including the headers to use the new
321 definitions on either or both modules.
323 ** Fixed an error in the the brent minimisation algorithm. Iterations
324 should now follow Brent's original description correctly.
326 ** The bound coulomb function gsl_sf_hydrogenicR_e no longer reports
327 an underflow for exact zeroes of the wavefunction.
329 ** gsl_linalg_SV_decomp_jacobi now reports an error for the
330 unimplemented case M<N correctly.
332 ** Fixed conformance test for the SYRK and HERK blas functions
333 gsl_blas_{s,d,c,z}syrk and gsl_blas_{c,z}herk for non-square matrices.
335 ** Configure now checks for presence of ieeefp.h if needed.
337 ** Differential equation solvers now propagate error codes returned
338 from user-defined functions to the top-level in all cases.
340 ** Sort functions now avoid an infinite loop if Nans are present in
341 the input vector. The order of nans in the output is undefined,
342 although other elements will be sorted correctly.
344 * What was new in gsl-1.6:
346 ** Added a new wavelet directory, with 1-dimensional and 2-dimensional
347 discrete wavelet transforms.
349 ** Added support for LQ and P^T LQ decompositions. To find the QR
350 decomposition of large systems (M>>N) use the LQ decomposition,
351 solving the transpose of the original system. This allows more
352 efficient memory access, and is useful for solving large least-squares
355 ** Fixed a bug in the SYRK and HERK blas functions gsl_blas_{s,d,c,z}syrk
356 and gsl_blas_{c,z}herk which caused invalid memory access for non-square
359 ** Fixed a bug in gsl_swap_vectors which caused it to return incorrect
360 results when swapping vectors with different strides.
362 ** Corrected the error estimate for gsl_cheb_eval_n_err to use
363 evaluation order instead of the approximation order.
365 ** Improved the reliability of the gsl_sf_gamma_inc family of
368 ** Equal abscissae are now handled gracefully in the cspline and
369 periodic cspline interpolations.
371 ** Removed potential cancellation error in calculation of uniform
374 ** Improved numerical stability of integration for akima and cspline
377 ** Differential equation solvers now handle error codes returned from
378 user-defined functions.
380 ** Improved error estimates in ode-initval solvers, and provide exact
381 derivatives on output. Added new semi-implicit ode-initval solver,
382 gsl_odeiv_step_rk2simp.
384 ** Added missing function definition for gsl_sf_psi_1.
386 ** Fixed the function gsl_sf_expint_Ei_scaled to call
387 gsl_sf_expint_Ei_scaled_e instead of gsl_sf_expint_Ei_e.
389 ** Added cumulative distribution function for exponential power
392 ** The functions gsl_cdf_beta_P and gsl_cdf_beta_Q now return
393 consistent results of 0 or 1 for out of range values, x<0 and x>1,
394 rather than 0 for left and right tails simultaneously.
396 ** The Jacobi eigensolvers gsl_eigen_jacobi and gsl_eigen_jacobi_invert
397 have new implementations from Golub and Van Loan.
399 ** The standard output and standard error streams are now flushed by
400 the default error handler before the program aborts, in order to
401 ensure that error messages are properly displayed on some platforms.
403 * What was new in gsl-1.5:
405 ** Multifit routines now handle iterations where |f| is already
406 minimised to zero, without division by zero.
408 ** Fixed the singular value tolerance test in the multifit covariance
409 calculation from < to <= to match the original MINPACK code.
411 ** The macro HAVE_INLINE is now tested with #ifdef instead of #if as
412 in versions prior to 1.4, to match the documentation, and the macro
413 GSL_RANGE_CHECK_OFF now works correctly. An alternative macro
414 GSL_RANGE_CHECK={0,1} can be used to control range-checking.
416 ** Fixed a potential array overflow in gsl_ran_landau.
418 ** Fixed a small discrepancy in the tolerance calculation of the
419 one-dimensional brent minimiser.
421 ** Numerical derivatives should now be calculated using the
422 gsl_deriv_forward, gsl_deriv_central and gsl_deriv_backward functions,
423 which accept a step-size argument in addition to the position x. The
424 original gsl_diff functions (without the step-size) are deprecated.
426 ** Corrected documentation for gsl_ran_hypergeometric_pdf()
428 ** The tridiagonal matrix solvers gsl_linalg_solve_symm_tridiag,
429 gsl_linalg_solve_tridiag, gsl_linalg_solve_symm_cyc_tridiag,
430 gsl_linalg_solve_cyc_tridiag now use the GSL_ERROR macro to report
431 errors, instead of simply returning an error code. The arguments to
432 these functions must now use exact lengths with no additional
433 elements. For cyclic systems all vectors must be of length N, for
434 tridiagonal systems the offdiagonal elements must be of length N-1.
436 ** The singular value decomposition routines gsl_linalg_SV_decomp and
437 gsl_linalg_SV_decomp_mod now handle the SVD of a column vector (N=1,
438 arbitrary M), which can occur in linear fitting.
440 ** Restored missing header files gsl_const_mks.h and gsl_const_cgs.h.
441 The incorrect values of the electrical units for gsl_const_cgs
442 (VACUUM_PERMEABILITY and VACUUM_PERMITTIVITY) have been removed.
444 ** Fixed gsl_linalg_SV_decomp() to avoid an infinite loop when
445 computing the SVD of matrices containing Inf and Nan.
447 ** Fixed gsl_linalg_balance_columns() to avoid an infinite loop when
448 rescaling matrices containing Inf and NaN.
450 ** Fixed header file <gsl/gsl_sf_log.h> to include declarations for
451 error codes in inline versions of gsl_sf_log functions
453 ** Fixed header file <gsl/gsl_const.h> to include new MKSA and CGSM
456 ** Added Stefan-Boltzmann constant and Thomson cross section to
459 * What was new in gsl-1.4:
461 ** Added cumulative distribution functions and their inverses for the
462 continuous random distributions including: gaussian, lognormal, gamma,
463 beta, cauchy, laplace, chisq, exponential, gumbel, weibull,
464 F-distribution, t-distribution, logistic, pareto and rayleigh.
466 ** Added faster binomial random variates using the TPE rejection
467 algorithm, in the function gsl_randist_binomial_tpe.
469 ** Added new functions gsl_rng_fwrite and gsl_rnd_fread for storing
470 the state of random number generators in a file.
472 ** Added a new function gsl_combination_memcpy()
474 ** Corrected values of electrical constants in CGS units. To take
475 account of different electrical systems of units the values are now
476 prefixed by GSL_CONST_MKSA (for the SI Metre, Kilogram, Second, Ampere
477 system) or GSL_CONST_CGSM (for the Centimetre, Gram, Second, Magnetic
478 system with the Gauss as the fundamental unit of magnetic field
479 strength). The previous GSL_CONST_MKS and GSL_CONST_CGS prefixes have
480 been removed, as have the permeability and permittivity constants in
481 the CGS system since this uses different defining equations.
483 ** Fixed bugs in the random number generators gsl_rng_fishman18,
484 gsl_rng_fishman2x, and gsl_rng_knuthran2 which caused them to return
485 incorrect results. Minor corrections were made to the parameters in
486 the other Knuth generators borosh13, coveyou, fishman20, lecuyer21,
489 ** Fixed a missing transpose bug in the gsl_linalg_QR_QRsolve
490 and gsl_linalg_QRPT_QRsolve routines which were computing the
491 solution to Q^T R x = b instead of Q R x = b.
493 ** Fixed gsl_sf_gammainv to return zero instead of a domain
494 error for arguments corresponding to singularities in gamma.
496 ** Fixed a bug in the simplex minimization algorithm which
497 caused it to fail to find the second highest point correctly
498 when searching the set of simplex points.
500 ** Fixed a bug in the conjugate gradient minimizers conjugate_pr,
501 conjugate_fr and vector_bgfs which caused the search
502 directions to be updated incorrectly.
504 ** Fixed a bug in gsl_sf_psi_1_int(1) which caused it to
505 return the incorrect sign for psi(1,1).
507 ** Fixed the simulated annealing routine gsl_siman_solve to use the
508 parameter iters_fixed_T for the number of iterations at fixed
509 temperature instead of n_tries.
511 ** Fixed a bug in gsl_combination_valid which caused it to return the
514 ** Fixed a bug in gsl_permutation_canonical_to_linear which caused the
515 output to always be zero, and the input permutation to be incorrectly
516 replaced by the output.
518 ** Fixed a bug is gsl_ran_discrete which could cause uninitialised
519 data to be returned for some distributions.
521 ** Fixed the dependencies for gsl_chebyshev.h to include gsl_math.h.
523 ** Fixed a bug in gsl_complex_arccsc_real which caused it to return
524 the incorrect sign for the imaginary part when -1<x<0.
526 ** Fixed a bug in the QAWC Cauchy integration routine which could
527 allow the singularity to fall on an interval boundary, leading to
530 ** Improved gsl_sf_gamma_inc_P(a,x) to avoid a domain error for x<<a
533 ** Improved the accuracy of gsl_sf_coupling_3j for large arguments.
535 ** Improved the performance of gsl_sf_choose(m,n) by separating the
536 calculations for small and large arguments.
538 ** On platforms without IEEE comparisons gsl_{isnan,isinf,finite} will
539 fall back to the system versions of isnan, isinf and finite if
542 ** gsl_linalg_householder_hv now uses BLAS routines internally
544 ** The script configure.in is now compatible with autoconf-2.50 and
547 ** Reduced the memory usage of the multifit algorithms from MxM to MxN
548 for large M by performing the QR decomposition of the Jacobian
551 ** IEEE modes now use the C99 fenv.h functions when platform spectific
552 functions are not available.
554 * What was new in gsl-1.3:
556 ** Changed interface for gsl_sf_coupling_6j...(...). The old functions
557 actually calculated 6j for a permutation of the arguments (that
558 related to Racah W). This was incorrect and not consistent with
559 the documentation. The new versions calculate < {a,b,c}, {d,e,f} >,
560 as stated in the documentation. The old versions are still available
561 as gsl_sf_coupling_6j_INCORRECT...(...), though they are deprecated
562 and will be removed at some point in the future.
564 ** Added new functions for computing Em(x)=exp(-x)*Ei(x), the modified
565 (scaled) form of the exponential integral, gsl_sf_expint_E1_scaled,
566 gsl_sf_expint_E2_scaled, gsl_sf_expint_Ei_scaled.
568 ** Fixed compilation problems with gcc -ansi and other ANSI compilers.
570 ** Fixed uninitialized memory access in the Niederreiter quasi-random
573 ** Fixed the eigenvalue routines to prevent an infinite loop for Inf
574 or NaN entries in matrix.
576 ** Fixed a bug in the multifit and multiroots allocation routines
577 which cause them to fail to report some out of memory conditions.
579 ** Fixed a bug in the seeding for the random number generator
580 gsl_rng_taus2 which affected a small number of seeds.
582 ** Modified the complex householder transforms to avoid division by
583 zero, which could cause NaNs to be returned by the gsl_eigen_hermv
584 eigenvalue decomposition.
586 ** The Nelder-Mead simplex algorithm for multidimensional
587 minimisation has been added.
589 ** The random number distributions now include the Dirichlet and
590 Multinomial distributions.
592 ** Added a new function gsl_fcmp for approximate comparison of
593 floating point numbers using Knuth's algorithm.
595 ** Added new functions gsl_ldexp and gsl_frexp as portable
596 alternatives to ldexp() and frexp().
598 ** Fixed a bug in gsl_linalg_bidiag_unpack_B which was returning
599 incorrect results for the superdiagonal.
601 ** Fixed a bug in the acceptance condition for simulated annealing
603 ** Ordinary differential equations can now be solved using a different
604 absolute error for each component with gsl_odeiv_control_scaled_new().
606 ** Upgraded to libtool-1.4.3
608 * What was new in gsl-1.2:
610 ** Added new functions for combining permutations, converting between
611 cyclic and linear representations, and counting cycles and inversions.
613 ** New multiroot functions now allow access to the current values of f
616 ** The default error handler now outputs a explanatory message before
619 ** Extended gsl_linalg_SV_decomp to handle exact zeroes in the
620 singular values, and added tests for 3x3 matrices.
622 ** Fixed a bug in gsl_linalg_SV_decomp which caused singular values to
623 be sorted incorrectly.
625 ** Fixed a bug in gsl_linalg_solv_symm_cyc_tridiag which caused it to
626 produce incorrect results.
628 ** Added nonsymmetric tridiagonal solvers gsl_linalg_solve_tridiag and
629 gsl_linalg_solve_cyc_tridiag.
631 ** The declarations used to export static objects can now be
632 controlled through a macro GSL_VAR and the header file
635 ** The simulated annealing routine gsl_siman_solve now keeps track of
636 the best solution so far.
638 ** The values of the physical constants have been updated to the
639 CODATA 1998 recommendations.
641 ** Added new physical constants, newton, dyne, joule, erg and
642 power-of-ten prefixes, Mega, Giga, Tera, etc.
644 ** The error estimate for the elliptic function gsl_sf_ellint_Kcomp_e
645 has been improved to take account of numerical cancellation for small
648 ** The domain of gsl_sf_psi_1piy has been extended to negative y.
650 ** Fixed memory leak in the Chebyshev module.
652 ** The seeding procedure of mt19937 has been updated to the latest
653 version from Makoto Matsumoto and Takuji Nishimura (Jan 2002). The
654 original seeding procedure is available through the generator
655 gsl_rng_mt19937_1999.
657 ** A new random number generator gsl_rng_taus2 has been added to
658 correct flaws in the seeding procedure of gsl_rng_taus, as described
659 in an erratum to the original paper of P. L'Ecuyer.
661 ** Added missing declaration for the generator gsl_rng_mt_19937_1998.
663 ** Added missing quasi-random number generator function gsl_qrng_init.
665 ** Removed unnecessary endpoint subtraction in chebyshev-based
666 QUADPACK routines to avoid possible loss of precision.
668 ** Fixed bug in gsl_interp_cspline_periodic which caused a
669 discontinuity in the derivative near the boundary.
671 ** The function gsl_min_fminimizer_minimum has been renamed to
672 gsl_min_fminimizer_x_minimum for consistency (the old function name is
673 still available but is deprecated). Additional functions have been
674 added for accessing the function values at the minimum and endpoints
675 of the bounding interval.
677 ** The KNOWN-PROBLEMS file of "make check" failures has been replaced
678 by a BUGS file, since we now require "make check" to work correctly
681 * What was new in gsl-1.1.1:
683 ** Fixes to histogram2d stat functions
685 ** Added missing prototypes for complex LU determinant functions
687 ** Improved error handling in multifit routines
689 ** Added check to avoid division by zero for rank-deficient matrix in
692 * What was new in gsl-1.1:
694 ** The permutation module now includes a copy function
695 gsl_permutation_memcpy
697 ** The implementation of gsl_sf_gamma_inc has been improved and now
698 avoids problems caused by internal singularities which occurred in the
699 series expansion for some combinations of parameters.
701 ** IEEE comparisons of infinities and NaNs are tested during the
702 configure stage and the functions gsl_isnan, gsl_isinf and gsl_finite
703 are only compiled on platforms which support the necessary tests.
705 ** The histogram routines now include a sum function,
706 gsl_histogram_sum for computing the total bin sum, and additional
707 statistics functions for 2d histograms.
709 ** Internal error checking of user-defined functions has been improved
710 in the multiroots functions.
712 ** Constants now include the Bohr Radius and Vacuum Permittivity.
714 ** Range checking is now turned off when building the library, but is
715 still on by default when compiling user applications.
717 ** A combinations directory has been added for generating combinations (n,k).
719 ** The gamma function now returns exact values for integer arguments.
721 ** Fixed bugs in gsl_sf_hyperg_1F1_int and gsl_sf_hyperg_1F1.
723 ** Fixed internal error handling in gsl_sf_laguerre_n to allow
724 recovery from overflow.
726 ** Several routines for handling divided difference polynomials have
727 been added to the poly/ directory.
729 ** The interpolation routines now include polynomial interpolation,
730 based on divided-differences.
732 ** Added new random number generators from Knuth's Seminumerical
733 Algorithms, 3rd Edition: borosh13, coveyou, fishman18, fishman20,
734 fishman2x, knuthran, knuthran2, lecuyer21, waterman14.
736 ** Changed divisor in random number generator gfsr4 from 2^32-1 to
737 2^32 to prevent exact value of 1.0 from being returned, as specified
738 in the documentation.
740 * What was new in gsl-1.0:
742 ** First general release.
744 ** Increased the maximum number of iterations in gsl_poly_complex_solve()
747 * What was new in gsl-0.9.4:
749 ** Reorganized the multmin functions to use the same interface as the
750 other iterative solvers.
752 ** Added histogram _alloc functions for consistency, in addition to the
753 existing _calloc functions.
755 ** Renamed all the gsl_multimin functions to be consistent with the
756 rest of the library. An underscore has been removed from _minimizer
757 in all the function names.
759 ** Renamed the function gsl_sf_coulomb_CL_list to gsl_sf_coulomb_CL_array
761 ** A bug in the multimin functions where the function parameters
762 (params) were omitted has been fixed.
764 ** A bug in the nonlinear minimization routines has been fixed, which
765 could prevent the algorithms from converging. Additional tests from
766 the NIST reference datasets have been added and these now agree with
769 ** All the physical constants and conversion factors are now defined as
770 real numbers to avoid potential problems with integer arithmetic.
772 ** The ODE evolution routines now allow for negative step sizes, and
773 integrating backwards as well as forwards.
775 ** The implicit Burlisch-Stoer ODE algorithm 'bsimp' now detects
776 singularities and forces a reduction in step size, preventing runaway
779 ** Fixed a bug in the ODE evolution function gsl_odeiv_evolve_apply
780 which could cause an erroneous value to be returned if the step size
781 is reduced on the last step.
783 * What was new in gsl-0.9.3:
785 ** Routines for complex LU decomposition are now available, allowing
786 the solution of systems of equations with complex coefficients.
788 ** Matrix views of vectors now correctly require a unit stride for the
791 ** Permutations can now be applied to complex arrays and vectors.
793 ** gsl_sf_pow_int now handles the case x = 0, n < 0
795 ** The static versions of inline functions can now be hidden by
796 defining the preprocessor macro HIDE_INLINE_STATIC. This is needed
799 ** The original seeding procedure of mt19937 is available through the
800 generator gsl_rng_mt19937_1998. The seeding procedure was flawed, but
801 is available for compatibility.
803 ** Added missing functions gsl_complex_div_real and
804 gsl_complex_div_imag.
806 ** Missing functions for constant vector and matrix views have now been
809 ** Statistical calculations for histograms are now available, and the
810 gsl-histogram command also displays the histogram mean and standard
813 ** The behavior of GSL_IEEE_MODE for denormalized exceptions has been
814 fixed on Openbsd and Netbsd.
816 ** A pkg-config file gsl.pc is included in the distribution
818 ** The reference manual can now be printed in @smallbook format without
821 * What was new in gsl-0.9.2:
823 ** Vector and matrix views are now compliant with the ANSI standard.
825 ** Added Lambert functions gsl_sf_lambert_W0, gsl_sf_lambert_Wm1.
827 ** The reference manual now uses the GNU Free Documentation License.
829 ** Fixed a couple of bugs in the SVD routines.
831 ** Macros for Infinity and Nan now work correctly with Microsoft Visual
832 C++, and a bug in the config.h file for the finite() function has been
835 ** Redundant entries in the test suite for the complex math functions
836 have been removed, making the distribution size smaller.
838 ** Installed programs gsl-randist and gsl-histogram now use shared
841 * What was new in gsl-0.9.1:
843 ** The single precision ffts now uses float throughout, rather than
844 mixing float and double.
846 ** The random number distributions now include the Landau distribution.
848 ** The fft function interface has been reorganized, with workspaces
849 separate from wavetables to eliminate unnecessary recomputation of
850 trigonometric factors.
852 ** The gsl_interval type has been eliminated and replaced by two double
853 arguments for simplicity.
855 ** The order of the arguments to the minimization routines is no more
856 logical, with function values assocatied with x-values.
858 ** Modified initialization of vector and matrix views to work with the
861 ** Renamed gsl_Efunc_t to gsl_siman_Efunc_t, in accordance with
862 namespace conventions.
864 ** Improved accuracy and fixed bugs in gsl_sf_hyperg_1F1,
865 gsl_sf_bessel_I0_scaled, gsl_sf_erfc, gsl_sf_log_erfc,
866 gsl_sf_legendre_Q0 and gsl_sf_legendre_Q1, and gsl_sf_zeta.
868 ** Improved IEEE compliance of special functions, overflows now return
869 Inf and domain errors return NaN.
871 ** Improved checking for underflows in special functions when using
872 extended precision registers
874 * What was new in gsl-0.9:
876 ** There is a new system of vector and matrix views. Any code using
877 vector and matrix views will need to be updated.
879 ** The order of arguments of the view functions involving strides have
880 been changed to be consistent with the rest of the library.
882 ** The ode solvers have been reorganized.
884 ** There are new eigensystem routines for real symmetric and complex
887 ** The linear algebra directory now includes functions for computing
888 symmetric tridiagonal decompositions and bidiagonal decompositions.
890 ** The svd routines now include the Golub-Reinsch and Modified
891 Golub-Reinsch algorithms in addition to the Jacobi algorithm.
893 ** The interpolation directory has been reorganized and a higher-level
894 "spline" interface has been added which simplifies the handling of
895 interpolation arguments.
897 ** IEEE support is now available on OpenBSD.
899 * What was new in gsl-0.8:
901 ** The build process now uses the latest libtool and automake.
903 ** The library should now compile with Microsoft Visual C++.
905 ** Portable versions of the isinf, isnan and finite functions are
906 available as gsl_isinf(x), gsl_isnan(x) and gsl_finite(x).
908 ** The definitions of GSL_POSINF, GSL_NEGINF and GSL_NAN no longer
909 cause divisions by zero during compilation.
911 ** The gsl_interp_obj has been renamed to gsl_interp.
913 ** The poly_eval and pow_int functions have been moved from the
914 specfunc directory to the poly and sys directories.
916 ** The Chebyshev functions are now available as an independent module
917 in their own directory.
919 ** The error handling conventions have been unified across the
920 library. This simplifies the use of the special functions.
922 ** A full CBLAS implementation is now included for systems where ATLAS
923 has not been installed. The CBLAS library can also be used
924 independently of GSL. The organisation of the BLAS directories has been
927 ** IEEE support for HPUX-11, NetBSD, Apple Darwin and OS/2 are now
930 ** The library now includes implementations of log1p, expm1, hypot,
931 acosh, asinh, atanh for platforms which do not provide them.
933 ** The convention for alloc and set functions has changed so that they
934 are orthogonal. After allocating an object it is now necessary to
937 ** There is a new module for estimating numerical derivatives of functions
939 ** There is a new module for handling data with ntuples
941 ** The histogram lookup functions are now optimized for the case of
942 uniform bins, and include an inline binary search for speed.
944 ** The Chebyschev coefficients for the QAWO algorithm are now
945 precomputed in a table for efficiency, rather than being computed on
948 ** There are several new sorting functions for selecting the k-th
949 smallest or largest elements of a dataset.
951 ** Iterator functions are now available for permutations,
952 gsl_permutation_next and gsl_permutation_prev.
954 ** The function gsl_complex_xy has been renamed gsl_complex_rect
956 ** The API for simulated annealing has been changed to support search
957 spaces in which the points cannot be represented as contiguous-memory
958 data structures. gsl_siman_solve() now takes three extra arguments: a
959 copy constructor, a copy function and a destructor, allowing
960 gsl_siman_solve() to do its work with linked data structures. If all
961 three of these function pointers are NULL, then the traditioanl
962 approach of using malloc(), memcpy(), and free() with the element size
965 * What was new in gsl-0.7:
967 ** Linux/PowerPC should now be well supported.
969 ** Header files for common physical constants have been added.
971 ** Functions linear and nonlinear regression in one or more dimensions
974 ** Vector and matrix views now have access to the address of the
975 underlying block for compatibility with VSIPL (www.vsipl.org).
977 ** There is a new library for generating low-discrepancy quasi-random
980 ** The seeding procedure of the default random number generator
981 MT19937 has been updated to match the 10/99 release of the original
982 code. This fixes a weakness which occurred for seeds which were
985 ** The blas library libgslblasnative has been renamed libgslblas to avoid
986 confusion with system blas library
988 * What was new in gsl-0.6:
990 ** The library is now installed as a single shared or static libgsl
993 ** The gsl-config script now works. There is also a gsl.m4 file which
994 people can use in their configure scripts.
996 ** All header files are now in installed as pkginclude headers in a
999 ** The header files now use extern "C" to allow them to be included in
1002 ** For consistency the following functions have been renamed,
1004 gsl_vector_copy (dest, src) is now gsl_vector_memcpy (dest, src)
1005 gsl_rng_cpy (dest, src) is now gsl_rng_memcpy (dest, src)
1006 gsl_matrix_copy_row (v,m,i) is now gsl_matrix_get_row (v,m,i)
1007 gsl_matrix_copy_col (v,m,j) is now gsl_matrix_get_col (v,m,j)
1008 gsl_vector_swap is now gsl_vector_swap_elements
1009 gsl_vector_swap_cols is now gsl_vector_swap_columns
1010 gsl_vector_swap_row_col is now gsl_vector_swap_row_column
1012 and the vector/matrix view allocation functions have been simplified.
1014 ** A new sort directory has been added for sorting objects and vectors.
1016 ** A permutation directory has been added for manipulating permutations
1018 ** Statistics functions now support a stride argument for generality, and
1019 also support weighted samples and a covariance function.
1021 ** The names of the statistics functions have been reorganized for
1022 improved clarity. Consult manual for details.
1024 ** The environment variable GSL_IEEE_MODE now uses "," as a separator
1027 ** The autogen.sh script, mostly for use by developers who use the CVS
1028 repository, now does not run configure.
1030 ** The histogram directory now has additional functions for copying
1031 and comparing histograms, performing arithmetic on histograms and
1032 finding maximum and minimum values. Corresponding functions have been
1033 added for vectors and matrices.
1035 ** The linear algebra directory supports additional methods, including
1036 rectangular QR, rectangular QRPT and Cholesky decomposition.
1038 ** Complex arithmetic (+,-,*,/) and complex elementary functions
1039 (sqrt, log, exp, sin, cos, tan, arcsin, arccos, arctan, sinh, cosh,
1040 tanh, arcsinh, arccosh, arctanh) are now supported.
1042 ** Multidimensional minimization methods are now available.
1044 ** The special functions directory now includes a routine for
1045 computing the value of the incomplete beta function.
1047 * Was new in gsl-0.5:
1049 ** There is now a KNOWN-PROBLEMS file which lists compilation problems
1050 and test failures which are known to the developers.
1052 ** Many improvements have been made to the special functions directory.
1054 ** The extrapolations from the Levin u-transform are now more reliable.
1056 ** Linear algebra and Eigensystem routines are now available.
1058 ** ODE solvers are now available.
1060 ** Multidimensional root finding algorithms are available.
1062 ** Minimization now keeps track of function values.
1064 ** Matrices and vectors now use a BLAS compatible format, and have a
1065 separate memory handling layer (gsl_block).
1067 ** Roots of general polynomials can now be found using gsl_poly_complex_solve
1069 ** IEEE modes support on Sparclinux, Tru64, AIX and IRIX
1071 ** We have added the second generation RANLUX generators RANLXS and RANLXD
1073 ** Minimization algorithms are available (one-dimensional)
1075 ** Documentation now works out of the box with the standard Texinfo.
1077 ** Full reimplementation of the QUADPACK integration library
1079 ** Introduced THANKS file.
1080 We appreciate all patches from people on the net, even those which are
1081 too small to warrant adding the author to the AUTHORS file. The
1082 THANKS file should include everyone who sent in patches. They should
1083 also be mentioned in the ChangeLog entry.
1085 * What was new in gsl-0.4.1:
1087 ** Two changes not making their way into the documentation
1088 A couple of things are not getting into the docs, so here are the
1090 *** The FFT routines now take a stride parameter. Passing 1 for the
1091 stride will make them behave as documented.
1092 *** The complex numbers are now an opaque type, and no assumptions can
1093 be made about the format in which they are stored (they are not stored
1094 as a simple structure anymore, since that is not portable). The type
1095 is now gsl_complex (or gsl_complex_long_double or gsl_complex_float),
1096 and the macros to access them are
1099 GSL_COMPLEX_P_REAL(zp)
1100 GSL_COMPLEX_P_IMAG(zp)
1101 GSL_COMPLEX_EQ(z1,z2)
1102 GSL_SET_COMPLEX(zp,x,y)
1106 This change in the complex number API makes it important that you
1107 start working with 0.4.1 or later.
1109 ** 0.4.1 is being released in occasion of the Red Hat 6.0 release.
1110 The specfunc module is still in an alpha state; if you run "make
1111 check" in the specfunc directory you will see that some tests still
1114 ** Most Alpha specific problems have been fixed. In particular the
1115 random number generators rand48 and ranf now work on the Alpha
1117 ** Additional random number distributions:
1118 Rayleigh distribution
1119 n-dimensional spherical distribution
1120 (ie, points at random on an n-dimensional sphere)
1121 Gaussian tail distribution
1122 (ie, choosing values from a gaussian distribution subject to a
1123 constraint that they be larger than some fixed value, eg 5 sigmas)
1124 Walker's algorithm for arbitrary discrete distributions
1126 * What was new in gsl-0.4:
1128 ** A single libgsl.a file is built in the top level directory and
1129 installed, instead of separate .a files for each subdirectory.
1131 ** The parts of the complex struct gsl_complex, .real and .imag, are
1132 not supported anymore. The macros GSL_REAL(z) and GSL_IMAG(z) do the
1133 same job. All complex numbers are considered as packed arrays of
1134 floating point numbers, for portability since the layout of structs or
1135 arrays of structs is not guaranteed.
1137 ** The interface for matrices and vectors has changed. Vectors now
1138 support strides, and can be used to access rows and columns of a
1139 matrix. Many more types are available (float, double, long double,
1140 int, long, short, char, signed and unsigned, plus complex floats,
1141 doubles and long doubles) due to improvements in our preprocessor
1144 ** The random number generators have a completely new thread-safe
1145 interface and have moved from the random directory to the rng
1146 directory. Any program using random numbers will have to be
1147 updated. You can also choose generators and seeds using the
1148 environment variables GSL_RNG_TYPE and GSL_RNG_SEED.
1150 ** Some additional random number distributions have been added in the
1151 randist directory. The available distributiosn are: bernoulli, beta,
1152 binomial, cauchy, chisq, erlang, exponential, fdist, flat, gamma,
1153 gauss, geometric, levy, logistic, lognormal, nbinomial, pareto,
1154 poisson, sphere, tdist, twosidedexp, weibull.
1156 ** The FFT interface has be extended to support strides, but the
1157 implementation hasn't been finished for all the cases yet, The FFT
1158 allocation functions now return a pointer to a newly allocated
1159 wavetable struct, instead of taking the pointer to an existing struct
1162 e.g. status = gsl_fft_wavetable_alloc(n, w)
1163 is now w = gsl_fft_wavetable_alloc(n) in accordance with usual practice
1165 ** The statistics directory now works with all the builtin
1166 types. It has a new function for computing the lag1-autocorrelation and
1167 an extra set of numerical accuracy tests from NIST as part of 'make
1170 ** The simulated annealing routines no longer set the random number
1171 seed with the time of day. You'll need to reseed the generator
1172 yourself if you want subsequent runs to use different random numbers.
1174 ** Work is in progress on a reimplementation of QUADPACK in the
1175 `integration' subdirectory, but it is not finished yet.
1177 ** Work is in progress on reimplementations of the VEGAS and
1178 MISER Monte Carlo algorithms in the monte' subdirectory. They work
1179 just fine, but the code is still evolving.
1181 ** Work has started on a portable blas system in the `blas'
1184 ** You can now set the IEEE arithmetic mode for your programs from the
1185 environment variable GSL_IEEE_MODE by calling the function
1186 gsl_ieee_env_setup(). Currently this only works with the Linux kernel,
1187 HP-UX, SunOS4 and Solaris.
1189 ** There are some simple spline interpolation functions in the `interp'
1192 ** The NEWS file now uses outline mode, like the Emacs NEWS file
1195 * This covers changes made *after* the gsl-0.2 snapshot
1197 ** Added several new modules: histogram, integration, matrix, specfunc
1200 ** Changed libgsl_statisctics.a to libgslstatistics.a and
1201 libgsl_siman.a to libgslsiman.a, since most of the packages don't have
1202 the underscore. Users will have to remove the old files, unless they
1203 do a "make uninstall" on the previous release before they install this
1206 ** Changes to the random number suite
1207 Incorporated the gauss, poisson and exponential distributions in
1208 the standard libgslrandom.a
1213 paragraph-separate: "[
\f]*$"