This is the mail archive of the gsl-discuss@sourceware.org mailing list for the GSL project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GSL 2.0 roadmap


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





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]