Sorry for the delay in replying. Here's a list of the changes from the NOTES file and my own org file. I plan to make a branch for release 2.0 after the next release 1.13 which will hopefully be next week. The 1.x branch should probably be maintained in parallel with any bug fixes for a release or two but hopefully those are just minor things now which we can easily merge.
* Changes for Release 2.0 Break binary compatibility, but keep source compatibility. ** Add a 'void *' to all workspaces, to allow for future changes. ** Disable deprecated functions ** Fix up the workspace_alloc functions so they have consistent names (add functions where needed, don't remove) ** Standardize function names, in particular VERB vs NOUN (e.g. _invert vs _inverse). Also adopt a convection for functions which can operate in place vs use of workspace (e.g linalg_solve functions). ** gsl_sf_ellint_D - remove useless argument n? ** Change default generator to Ranlxd (check seeding) or look at improved seeding for MT ** Vegas struct is too large and control variables should go at the beginning ** Remove use of long double internally, e.g. as an accumulator in loops. It introduces variation between platforms which is undesirable. It should be replaced with a preprocessor variable ACC_DOUBLE so that the user can compile the library with the old long double behavior if desired. ** Eliminate use of volatile where it has been used to force rounding (integration/). It is better to write the code to avoid dependence on rounding. ** Constant objects (like gsl_roots_fsolver_brent) ought to have constant pointers (const gsl_roots_fsolver_type * const gsl_roots_fsolver_brent) ** Make the return value EINVAL vs EDOM consistent for invalid parameters. EDOM means a domain error (i.e. float or mathematically undefined), EINVAL means invalid (i.e. zero length) ** Change return 0 to return GSL_SUCCESS, and return -1 to GSL_FAILURE throughout, where appropriate. Similarly change any if(...) checks of return values to use == GSL_SUCCESS, if they are checking for zero. N.B. want to be careful about accidentally omitting error conditions if using something like == GSL_FAILURE when function returns a different error code. ** Make sure that all #defines are fully wrapped in ()'s, especially the outermost layer which may have been missed. Everything should be of the form #define foo(x) (....) so there is no possibility of bad parsing. Need a perl script to check this! ** Convert to BZR? (check GPG signing and integrity guarantees) * Release "1.14" backwards compatible ** Add error code to all linalg svx type functions for singular matrix ** Merge integ-glfixed branch ** Fix bug #25383 use GSL_ENOPROG instead of GSL_CONTINUE in lmiterate.c ** compare new erf function ** Export dwt.c/dwt_step ** Fix relative error in integration check
