Tasks: Done And To Do

This page aims to be a handy reference not only of the work done but also of work pending for the next planned release. Users who want new features should submit patches to this page in the unclassified section of this document. Developers who want to lend a hand can grab tasks from this page. Everyone can see the progress which is being made.

The following is a list of items still TODO for Math. Contributions are welcome!

Many of these will always be a required. Please focus on applying format standards and provide as many test cases as possible for your code.

Develop user's guide following the package structure.
Provide any comments on this task here.
Performance and accuracy testing.
If anyone is interested in helping out here, what we could really use is a wider selection of test cases for the core numerical functions and validation against either other packages (e.g. R for the statistical stuff), verified datasets, or experiments comparing implementions using floats to doubles.
Test Coverage.
Clover tests show gaps in test path coverage. Get all tests to 100% coverage. Also improve test data and boundary conditions coverage.
Code review.

Code review is a continuous rpocess that all Contributors and Developers should practice while working on the code base.

  • Javadoc generation is still throwing warnings. Bring the Javadoc into compliance (i.e. reach zero warnings).
  • Verify that the code matches the documentation and identify obvious inefficiencies or numerical problems. All feedback/suggestions for improvement/patches are welcome.
  • CheckStyle with modified properties still shows many errors. Try to clean these up.

These current tasks are planned and in need completion for the inital release.

Add confidence intervals to Univariate implementations.
Provide any comments on this task here.
Distributions.
Extend distribution framework to support discrete distributions and implement binomial and hypergeometric distributions.
Analysis.
  • Rework unit tests for root finding and spline interpolation.
  • CheckStyle with modified properties still shows many errors. Try to clean these up.
Distributions.
Finalize the contents of MathUtils and StatUtils. Suggest any additions -- ideally with patches -- to these utility classes.
Complex Number Library.
An initial submission of a complex number library has been donated by Brent Worden. It has been added and is open to be reviewed/tested by others for feedback. The implementation is based on the following source: http://myweb.lmu.edu/dmsmith/ZMLIB.pdf.
  • Framework and implementation strategie(s) for finding roots or real-valued functions of one (real) variable. Implemented algorithms: Brent-Dekker, secant, simple bisection.
  • Cubic spline interpolation.
  • Bivariate Regression, correlation.
  • Sampling from Collections
  • Add higher order moments to Univariate implementations.
  • Binomial coefficients -- incorporate an "exact" implementation that is limited to what can be stored in a long. Also provided double-value implementation of binomial coefficients and their logs.
  • Add percentiles to stored Univariate implementations
  • Improve numerical accuracy of Univariate and BivariateRegression statistical computations
  • t-test statistic needs to be added and we should probably add the capability of actually performing t- and chi-square tests at fixed significance levels (.1, .05, .01, .001).
  • numerical approximation of the t- and chi-square distributions to enable user-supplied significance levels.
  • The RealMatrixImpl class is missing some key method implementations. The critical thing is solution of linear systems. We need to implement a numerically sound solution algorithm. This will enable inverse() and also support general linear regression.
  • Added double[] |-> double methods in StatUtils to take start indexes and length as parameters and delegate the current "full array" versions to these.