Todo List¶
Todo
(Future) Create an HDF file I/O example
(The original entry is located in /Users/awsteiner/wcs/o2scl/doc/o2scl/sphinx/hdf.rst, line 49.)
Todo
In yanic:
Need to fix function names in case where there is no namespace.
Simplify code duplication in parsing: reading global and member functions should be the same
Allow use of numpy.arange for uniform_grid arguments
Document .i format
Make sure data members named ‘del’ are properly renamed without hacking, e.g. with a py_name argument
Make sure negative size_t arguments are rejected in python
(The original entry is located in /Users/awsteiner/wcs/o2scl/doc/o2scl/sphinx/yanic.rst, line 213.)
Todo
In class auto_format:
Allow user-specified table alignments
switch to columnify::add_spaces() and add more complicated table line specifications
Implement row_max
Future:
Create a replacement for std::flush
Finish automatic table detection
For automatic table detection: allow user to change the number of rows which must have the same number of ‘words’ to verify a table.
Make internal algorithm more efficient.
(The original entry is located in <breathe>, line 1.)
Todo
In bessel_K_exp_integ_tl, better testing of accuracy.
(The original entry is located in <breathe>, line 1.)
Todo
In bose_einstein_integ_tl, better testing of accuracy.
(The original entry is located in <breathe>, line 1.)
Todo
In deriv_eqi::deriv_vector(): generalize to other values of npoints.
(The original entry is located in <breathe>, line 1.)
Todo
In fermi_dirac_integ_tl, better testing of accuracy.
(The original entry is located in <breathe>, line 1.)
Todo
In class fit_nonlin:
Allow the user to specify the derivatives
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.
(The original entry is located in <breathe>, line 1.)
Todo
Class inte_qawf_gsl_sin: More documentation and examples for the qawf, qawo and qawc integrators.
(The original entry is located in <breathe>, line 1.)
Todo
CLass mcarlo_vegas: Mode = importance only doesn’t give the same answer as GSL yet.
(The original entry is located in <breathe>, line 1.)
Todo
Function mcarlo_vegas::vegas_minteg_err():
Should stage be passed by reference?
There was an update between gsl-1.12 and 1.15 which has not been implemented here yet.
(The original entry is located in <breathe>, line 1.)
Todo
Class mroot:
Future: Change ntrial to size_t?
(The original entry is located in <breathe>, line 1.)
Todo
In class mroot_cern:
Future:
Modify this so it handles functions which return non-zero values.
Move some of the memory allocation out of msolve()
Give the user access to the number of function calls
Rename nier6, nier7, and nier8 to something sensible.
It may be that the o2 native Householder transformations should be used here instead of the inline version given here.
Based on the CERNLIB routines RSNLEQ and DSNLEQ, which was based on [More79] and [More80] and is documented at http://wwwasdoc.web.cern.ch/wwwasdoc/shortwrupsdir/c201/top.html
(The original entry is located in <breathe>, line 1.)
Todo
class mroot_hybrids
Future:
Is all the setting of vectors and matrices to zero really necessary? Do they need to be executed even if memory hasn’t been recently allocated?
Convert more ubvectors to vec_t.
Some more of the element-wise vector manipulation could be converted to BLAS routines.
It’s kind of strange that set() sets jac_given to false and set_de() has to reset it to true. Can this be simplified?
Many of these minpack functions could be put in their own “minpack_tools” class, or possibly moved to be linear algebra routines instead.
There are still some numbers in here which the user could have control over, for example, the
nslow2
threshold which indicates failure.
(The original entry is located in <breathe>, line 1.)
Todo
class mroot_hybrids
Future: Replace this with c dnrm2 from ref cblas_base.h
(The original entry is located in <breathe>, line 1.)
Todo
class mroot_hybrids
Future: Replace this function with daxpy?
(The original entry is located in <breathe>, line 1.)
Todo
class mroot_hybrids
Future: Replace this function with daxpy?
(The original entry is located in <breathe>, line 1.)
Todo
class mroot_hybrids
Future: This function is just right-multiplication, so we could use the O2scl cblas routines instead.
(The original entry is located in <breathe>, line 1.)
Todo
In class polylog, test with higher accuracy floating point types.
(The original entry is located in <breathe>, line 1.)
Todo
class root
Future:
Maybe consider allowing the user to specify the stream to which ‘verbose’ information is sent.
(The original entry is located in <breathe>, line 1.)
Todo
class root
Future: Return early if the bracketing procedure finds a root early?
(The original entry is located in <breathe>, line 1.)
Todo
class root_brent_gsl
Future:
There is some duplication in the variables c x_lower, c x_upper, c a, and c b, which could be removed. Some better variable names would also be helpful.
Create a meaningful enum list for ref o2scl::root_brent_gsl::test_form.
(The original entry is located in <breathe>, line 1.)
Todo
class root_cern
Future:
Double-check this class to make sure it cannot fail while returning 0 for success.
(The original entry is located in <breathe>, line 1.)
Todo
class root_cern
Future:
This number should probably default to one of the GSL tolerances.
(The original entry is located in <breathe>, line 1.)
Todo
class root
Future: Implement the functions solve() and solve_bkt() for derivative solvers.
(The original entry is located in <breathe>, line 1.)
Todo
class root_stef
Future:
There’s some extra copying here which can probably be removed.
Compare directly to GSL
This can probably be modified to shorten the step if the function goes out of bounds as in exc_mroot_hybrids.
(The original entry is located in <breathe>, line 1.)
Todo
In table::function_vector(): FIXME: there may be a problem with the OpenMP code if an exception is thrown in the calculator class and there is not a unique error handler for each thread.
(The original entry is located in <breathe>, line 1.)
Todo
Class tensor_grid: It is possible for the user to create a tensor_grid object, upcast it to a tensor object, and then use tensor::resize() to resize the tensor, failing to resize the grid. Following this, grid access functions will access random parts of memory or segfault. This can be fixed by ensuring that resize functions are virtual and have a version in tensor_grid which ensure that the grid and tensor data are matched. The problem is that the resize functions are templates, so they cannot be virtual.
(The original entry is located in <breathe>, line 1.)
Todo
In tensor_grid::interp_linear_partial(): Double check and document if the vector “ix_to_interp” needs to be ordered. I’m pretty sure it doesn’t, so long as the ordering in c val and c ix_to_interp are consistent.
(The original entry is located in <breathe>, line 1.)
Todo
In function rebin_xy(): I’m not sure what the purpose of this function was originally.
(The original entry is located in <breathe>, line 1.)
Todo
In function split_string(), the rules surrounding spaces and quotes are not well documented.
(The original entry is located in <breathe>, line 1.)
Todo
Fix the interpolation plot for this example.
(The original entry is located in /Users/awsteiner/wcs/o2scl/doc/o2scl/sphinx/interp.rst, line 111.)