Todo List

page O2scl User's Guide
Double check this documentation above

Class bin_size
Not working yet.

Class collection
  • If pointer_in gets a null pointer it does nothing. Should we replace this behaviour by two pointer_in() functions. One which does nothing if it gets a null pointer, and one which will go ahead and set the pointer to null. This is useful for output object which have default values to be used if they are given a null pointer.
  • More testing on rewrite() function.
  • Think more about adding arrays of pointers? pointers to arrays?
  • Modify static data output so that if no objects of a type are included, then no static data is output for that type? (No, it's too hard to go through all objects looking for an object of a particular type).

Class columnify
Move the screenify() functionality from misc.h into this class?

Class composite_inte
Convert to using std::vector<inte> for the 1-d integration pointers?

Class contour
  • Some contours which should be closed are not properly closed yet. See the tests for examples which fail.
  • Use twod_intp for regrid_data
  • Include the functionality to provide regions to be shaded instead of just lines. This can be done by providing a method, i.e. regions() which converts the curves into regions.
  • Rework documentation to refer to rows and columns, not x and y

Class eqi_deriv
The uncertainties in the derivatives are not yet computed and the second and third derivative formulas are not yet finished.

Global eqi_deriv::deriv_array (size_t nv, double dx, const vec_t &y, vec_t &dydx)
generalize to other values of npoints.

Class gaussian_2d
Double check that sigma is implemented correctly

Class gsl_fit
Properly generalize other vector types than ovector_view

Class gsl_fit
Allow the user to specify the derivatives

Class gsl_fit
Fix so that the user can specify automatic scaling of the fitting parameters, where the initial guess are used for scaling so that the fitting parameters are near unity.

Class gsl_inte_qag
Verbose output has been setup for this class, but this needs to be done for some of the other GSL-like integrators

Class gsl_inte_qag
Document workspace size here somehow

Class gsl_inte_qag
Document use of last_iter

Class gsl_inte_qagiu
I had to add extra code to check for non-finite values for some integrations. This should be checked.

Class gsl_inte_qawf_cos
Verbose output has been setup for this class, but this needs to be done for the other GSL-like integrators

Class gsl_inte_qawf_sin
Improve documentation a little

Class gsl_inte_qawo_cos
Verbose output has been setup for this class, but this needs to be done for the other GSL-like integrators

Class gsl_inte_qawo_sin
Improve documentation

Class gsl_inte_qaws
Finish this!

Class gsl_inte_singular::extrapolation_table
Improve the documentation

Class gsl_miser
Document the fact that min_calls and min_calls_per_bisection need to be set beforehand

Class gsl_mmin_bfgs2
Works with generic vector objects, but doesn't allow specification of jacobian yet.

Class gsl_mmin_conf
A bit of needless copying is required in the function wrapper to convert from gsl_vector to the templated vector type. This can be fixed, probably by rewriting take_step to produce a vec_t &x1 rather than a gsl_vector *x1;

Global gsl_mmin_conf::it_info
Document this better

Class gsl_mmin_conp
A bit of needless copying is required in the function wrapper to convert from gsl_vector to the templated vector type. This can be fixed.

Class gsl_mmin_conp
Document stopping conditions

Global gsl_mmin_linmin::minimize (gsl_mmin_wrap_base &wrap, double rho, double sigma, double tau1, double tau2, double tau3, int order, double alpha1, double *alpha_new)
Properly reference Fletcher here.

Class gsl_quartic_real2
Document the distinction between this class and gsl_quartic_real

Class gsl_root_brent
There is some duplication in the variables x_lower, x_upper, a, and b, which could be removed.

Class gsl_series
Covert to use a more general vector

Class gsl_vegas
Need to double check that the verbose output is good for all settings of verbose.

Class gsl_vegas
BINS_MAX and bins_max are somehow duplicates. Fix this.

Class gsl_vegas
Document the member data more carefully

Class hybrids_base
Document the individual functions for this class

Class io_base
Should the remove() functions be moved to class collection?

Class multi_min_fix
Generalize to all vector types

Class o2scl_interp_vec
Need to fix constructor to behave properly if init() fails. It should free the memory and set ln to zero.

Class ode_it_solve
Max and average tolerance?

Class ode_it_solve
partial correction option?

Global ode_iv_solve::solve_grid_derivs (double x0, double x1, double h, size_t n, vec_t &ystart, size_t nsol, vec_t &xsol, mat_t &ysol, mat_t &dydx_sol, param_t &pa, func_t &derivs)
Add error information

Global ode_iv_solve::solve_final_value_derivs (double x0, double x1, double h, size_t n, vec_t &ystart, vec_t &yend, vec_t &dydx_start, vec_t &dydx_end, param_t &pa, func_t &derivs)
Add error information

Class ool_constr_mmin
Implement automatic computations of gradient and Hessian

Class ool_constr_mmin
Construct a non-trivial example for the "examples" directory

Class ool_constr_mmin
Finish mmin() interface

Global ool_constr_mmin::mmin (size_t nvar, vec_t &xx, double &fmin, param_t &pa, func_t &ff)
Need to finish this function somehow since it's pure virtual in multi_min.

Class ool_mmin_pgrad
Complete the mmin() interface with automatic gradient

Class ool_mmin_pgrad
Replace the explicit norm computation below with the more accurate dnrm2 from linalg

Class other_todos_and_bugs
  • The o2scl-test and o2scl-examples targets require grep, awk, tail, cat, and wc. It would be good to reduce this list to ensure better compatibility.
  • More examples and benchmarks
  • Document a list of all global functions and operators
  • Make sure we have a uvector_alloc, uvector_cx_alloc, ovector_cx_const_reverse, ovector_cx_const_subvector_reverse, uvector_reverse, uvector_const_reverse, uvector_subvector_reverse, uvector_const_subvector_reverse, omatrix_cx_diag, blah_const_diag, umatrix_diag, and umatrix_cx_diag
  • ovector_cx_view::operator=(uvector_cx_view &) is missing
  • ovector_cx::operator=(uvector_cx_view &) is missing
  • uvector_c_view::operator+=(complex) is missing
  • uvector_c_view::operator-=(complex) is missing
  • uvector_c_view::operator*=(complex) is missing

Class ovector_cx_tlate
There is a slight difference between how this works in comparison to MV++. The function allocate() operates a little differently than newsize(), as it will feel free to allocate new memory when owner is false. It's not clear if this is an issue, however, since it doesn't appear possible to create an ovector_cx_tlate with a value of owner equal to zero. This situation ought to be clarified further.

Class ovector_cx_tlate
Add subvector_stride, const_subvector_stride

Class ovector_cx_view_tlate
Move conversion b/w complex<double> and gsl_complex to cx_arith.h

Class ovector_view_tlate
Check about self assignment as noted in http://www.cs.caltech.edu/courses/cs11/material/cpp/donnie/cpp-ops.html

Class ovector_view_tlate
Need to double-check and ensure operator[] and operator() are properly available on all of the various ovector_view children.

Class polylog
  • Give error estimate?
  • Improve accuracy?
  • Use more sophisticated interpolation?
  • Add the series $Li(n,x)=x+2^{-n} x^2+3^{-n} x^3+...$ for $ x \rightarrow 0$?
  • Implement for positive arguments < 1.0
  • Make another polylog class which implements series acceleration?

Global rnga::clock_seed ()
Ensure this function is ANSI compatible

Class search_vec
The documentation here is still kind of unclear.

Class simple_jacobian
Double check that this class works with arrays

Class simple_quartic_real
3/8/07 - Compilation at the NSCL produced non-finite values in solve_r() for some values of the coefficients. This should be checked.

Class simple_quartic_real
It looks like this code is tested only for a4=1, and if so, the tests should be generalized.

Class simple_quartic_real
Also, there is a hard-coded number in here ($ 10^{-6} $), which might be moved to a data member?

Global smart_interp::find_subset (const double a, const double b, size_t sz, const vec_t &x, const vec_t &y, size_t &nsz, bool &increasing)
After row and row2 are set, check to make sure the entire inside region is monotonic before expanding

Class table
Better testing of automatic resizing with user- and class-owned columns

Global table::set_nlines_auto (size_t il)
Resolve whether set() should really use this approach. Also, resolve whether this should replace set_nlines() (It could be that the answer is no, because as the documentation in the other version states, the other version is useful if you have columns not owned by the table.)

Global table::new_column (std::string name, ovector_view *ldat)
We've got to figure out what to do if ldat is too small. If it's smaller than nlines, obviously we should just fail, but what if it's size is between nlines and maxlines?

Class tensor
More complete testing.

Class tensor
Add const get functions for const references

Global text_out_file::text_out_file (std::ostream *out_file, int width=80)
Ensure streams are not opened in binary mode for safety.

Class timer_gettod
Better testing which doesn't use a fixed number of mathematical operations, but automatically selects enough operations.

Class uvector_tlate
Create a sort_unique() method as in ovector.

File array.h
Ensure that array_row works, either here or in src/ode/ode_it_solve_ts.cpp

File cblas_base.h
Finish dgemm()

Global matrix_out
If all of the matrix elements are positive integers and scientific mode is not set, then we can avoid printing the extra spaces.

File cx_arith.h
Define operators with assignment for complex + double

File cx_arith.h
Ensure all the trig functions are tested

Global screenify
Convert to the new version "screenify2"

Global double_to_html
Add a pad_zeros parameter as in double_to_latex().

Global double_to_latex
Consider converting to a class so the user can modify the strings used in giving the exponents, etc.

Global operator<<
This assumes that scientific mode is on and showpos is off. It'd be nice to fix this.

Global operator<<
This assumes that scientific mode is on and showpos is off. It'd be nice to fix this.

File vec_arith.h
Properly document the operators defined as macros


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