summaryrefslogtreecommitdiff
path: root/gsl-1.9/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'gsl-1.9/TODO')
-rw-r--r--gsl-1.9/TODO161
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