diff options
Diffstat (limited to 'gsl-1.9/TODO')
-rw-r--r-- | gsl-1.9/TODO | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/gsl-1.9/TODO b/gsl-1.9/TODO new file mode 100644 index 0000000..34a1fdb --- /dev/null +++ b/gsl-1.9/TODO @@ -0,0 +1,161 @@ +Main Todo Items +=============== + +We are looking for volunteers to do the following tasks. +Consult the TODO files in each directory first for specific +requirements. + +* 1st-line support on the mailing lists (e.g. checking that bugs are +reproducible, and that all relevant information is supplied) + +* Modified Ei(x) function (see specfunc/TODO) + +* Eigensystems for non-symmetric matrices + +* Quasi-random number distributions + +* ODE algorithms from RKSUITE + +* Incomplete Fermi-Dirac functions + +* General Legendre functions + +* Spheroidal wave functions + +* Weierstrass elliptic functions + +* Complex Bessel Functions + +* Additional volunteers with access to a good library to get copies of +papers for other developers. + +* Estimates of condition numbers for linear solvers + +* Sine and Cosine Transforms from FFTPACK (Alok Singhal <as8ca@virginia.edu>) + +* Cubature, e.g as provided by Cubpack. (Gert Van den Eynde +<gvdeynde@sckcen.be> ?) + +* Mathieu functions (Lowell Johnson <ldj00@sio.midco.net>) + +* Fresnel Integrals ("Juergen J. Zach" <jjzach@pacific.mps.ohio-state.edu>) + +* Cumulative Distribution functions for discrete random distributions + +Other tasks: + +* 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. + +* Use BLAS internally as much as possible, to take advantage of +speed improvements on large-scale systems. There may be some +instances where a simple for() loop is preferred since there's a +function-call overhead in calling BLAS routines. + +* More tests. We should (at least) have a test for every error +condition. Use GCOV to improve coverage. + +* Annotate the header files with GAMS classifications. See if they +can be included in the GAMs website. + +* 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! + +* Clean up the ordering of lines in the Makefile.am's so that they are +all consistent. At the moment the lines are in any order. + +* 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) + +* PyGSL -- python bindings for GSL, see http://pygsl.sf.net/ + +Wishlist or vague ideas +======================= + +* An example chapter on how to link GSL code with GNU Guile, and Python + +We could also provide g-wrap wrappers for guile, or swig.i files and +swig demos so that swig can be run more easily. + +* Provide an interface to LAPACK, as for BLAS? Clarify the license +for LAPACK first, their web page is vague on what the license terms +are. Some parts of LAPACK are included in octave so maybe the Octave +maintainers will know more. + +* Public domain or free texts which could be distributed with GSL: + +Abramowitz and Stegun, "Handbook of Mathematical Functions" appears to +be public domain. + +SEPT/02: See online images at http://members.fortunecity.com/aands/ + +Devroye's book on Random Variates (1st ed) is/was in the public +domain. + + +* Investigate complex support in GCC: Operations like sin(z) silently +convert argument to double, losing the imaginary part. This is +mentioned in CEPHES documentation in 1998 with a patch to generate a +warning. What happened? (Does it now work with gcc-3.0?) + +* Go through the matrix and vector functions systematically and decide +what should be provided outside of BLAS. + +* 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). + +* Change from gsl-ref.texi to gsl.texi since it is the main file? +Also, put under dir section "Math" (which seems to be the appropriate +one for Debian, as Octave, Gnuplot etc are in that) + +* Remove error stream stuff?? It is hardly used. + +* Extend histogram routines as described in recent discussion + +* Check that there are no conflicts when linking with Lapack. CBLAS, ATLAS + +* Make a sorted datatype for the median and quantile functions so that +the user can be prevented from passing unsorted data, which is not +checked for. + +* Optimization/error for dest == src as appropriate + +* Provide a run-time expression evaluator for interactive programs +where the user can provide formulas as strings. Keith Briggs +recommended formulc2.22 which he had found useful in several projects. +http://www.cs.brandeis.edu/~hhelf/formu/formulc.html. It is LGPL. +Alternatively, the source code for GDB contains yacc grammars and +evaluators for expressions in various languages, so that would be +another way to go. It would have the advantage of following the +language standards. If I was going to write something from scratch I +would think about using that as a base, as the full set of operators +are already included with the correct precedence rules. Being able to +evaluate C and Fortran expressions could be useful. + +* We should have an index mapping type object which handles elements +of size_t for vectors and matrices, or at least vectors and matrices +of size_t in addition to long, int, etc. + +* Fix up the workspace_alloc functions so they have consistent names |