| 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 |