Ideas for future development

Class base_interp
These might work for decreasing functions by just replacing calls to search_vec::bsearch_inc() with search_vec::bsearch_dec(). If this is the case, then this should be rewritten accordingly.

Class cern_adapt
More error checking, e.g. ensure the user doesn't try to get a segment greater than the total number of segments.

Class cern_adapt
Allow user to set the initial segments?

Class cern_mroot
Modify this so it handles functions which return non-zero values.

Class cern_mroot_root
Double-check this class to make sure it cannot fail while returning 0 for success.

Class deriv
Improve the methods for second and third derivatives

Class file_detect
Allow the user to specify the compression commands in configure, or at least specify the path to gzip, bzip2, etc.

Class gsl_anneal
Implement a more general routine which would allow the solution of discrete problems like the Traveling Salesman problem.

Class gsl_astep
Fix so that memory allocation/deallocation is performed only when necessary

Class gsl_astep
Allow user to find out how many steps were taken, etc.

Class gsl_deriv
Include the forward and backward GSL derivatives

Global gsl_inte_singular::qags (func_t &func, const int qn, const double xgk[], const double wg[], const double wgk[], double fv1[], double fv2[], const double a, const double b, const double l_epsabs, const double l_epsrel, const size_t limit, double *result, double *abserr, param_t &pa)
Remove goto statements?

Class gsl_inte_singular::extrapolation_table
Move this to a new class, with qelg() as a method

Class gsl_inte_table
Move gsl_integration_workspace to a separate class and remove this class, making all children direct descendants of gsl_inte instead. We'll have to figure out what to do with the data member wkspace though. Some work on this front is already in gsl_inte_qag_b.h.

Class gsl_mmin_wrapper
There's a bit of extra vector copying here which could potentially be avoided.

Class lanczos
The function eigen_tdiag() automatically sorts the eigenvalues, which may not be necessary.

Class nonadapt_step
Modify so that memory allocation/deallocation is only performed when necessary

Class ode_iv_solve
Convert to using astep_derivs()?

Class ode_iv_solve
Consider modifying so that this can handle tables which are two small by removing half the rows and doubling the stepsize.

Class other_todos_and_bugs
There may be a problem with const-correctness in vectors. I'm not sure how it's best solved. It could be best to create two kinds of ovector_view's: one const and one not. 10/19/07: I think it's the case that neither ovector_const_subvector, or const ovector_subvector are truly const, but it's only const ovector_const_subvector that would be truly const. I'm not sure if this is related to the issue of constness in ovector_view discussed above.

Class planar_intp
Rewrite so that it never fails unless all the points in the data set lie on a line. This would probably demand sorting all of the points by distance from desired location.

Class table
The nlines vs. maxlines and automatic resizing of table-owned vs. user-owned vectors could be reconsidered, especially now that ovectors can automatically resize on their own. 10/16/07: This issue may be unimportant, as it might be better to just move to a template based approach with a user-specified vector type. The interpolation is now flexible enough to handle different types. Might check to ensure sorting works with other types.

Class table
The present structure, std::map<std::string,col,string_comp> atree and std::vector<aiter> alist; could be replaced with std::vector<col> list and s td::map<std::string,int> tree where the map just stores the index of the the column in the list

Class test_mgr
test_mgr::success and test_mgr::last_fail should be protected, but that breaks the operator+() function. Can this be fixed?

Class twod_intp
Could also include mixed second/first derivatives: deriv_xxy and deriv_xyy.

File vec_arith.h
Define operators for complex vector * real matrix

File vec_arith.h
These should be replaced by the BLAS routines where possible

Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.

Project hosting provided by SourceForge.net Logo, O2scl Sourceforge Project Page