Future development - PatGleeson101/mathicall.js GitHub Wiki
Future development
This page describes the work-in-progress features of MathicallJS, as well as proposed features that are likely to appear in future.
Work in progress
General
- Developer guide
- Full
debugimplementation - Full unit tests
- Update and complete documentation
- Code cleanup: comments and formatting
- Provide example in README
Arrays
- Intersection, difference and symmetric difference (
intersect(),diff(),symdiff()) - Sorting
Matrices
- Optimised matrix and matrix-vector multiplication for
2x2,3x3and4x4matrices - Get rows (
rows()) or columns (cols()) of a matrix
Statistics
- Median
Proposed features
General
- Unit tests for
debugmode - Availability as an
npmpackage - Async, GPU and web-worker support, with Node.js compatability
- Examples directory
- Benchmark testing suite
- GitHub pages site for API documentation
- Polyfills
- Cascading options (e.g.
outputArrayType,enableDebug)
Standard operations
- Accurate _n_th root algorithm
Vectors
- Better support for polar form
- Quaternions
Matrices
- Row reduction (
rref) - Determinant for >2D matrices
- Inversion of >2D matrices
- Complex matrices
- Sparse matrices
- Eigenvalues/vectors
- Integer powers of matrices (
pow(mat, n)) - Cofactors and cofactor matrix
Integers
- Prime number generation
- Primality checking
- Prime factorisations
- Factors
Random numbers
- Wider range of uniform generators (Xorshift*, permuted congruential, linear congruential, etc.)
- Bernoulli, binomial, geometric, negative binomial, Poisson and Gaussian distributions
- Sphere sampling
- Worley noise
- OpenSimplex noise
Arrays
- Shuffling
- Concatenate typed arrays
- Optimise maximum linear search length
- Multidimensional arrays
- Optional parameter in
indexOfto find last (instead of first) occurrence.
Numerical calculations
- Definite integrals
- Iterative equation solving
- Numerical optimisation
Statistics
- Linear regression
- Normal, Bernoulli, binomial, geometric, negative binomial, Poisson and Gaussian distributions
Signal (new)
- Fast Fourier transform
- Array convolution
Symbolic (new)
- Expression evaluation to value or function
- Equation solving
- Derivatives & integrals
- Support for LaTeX & AsciiMath
Colour (new)
- Conversion between colour spaces
Interpolate (new)
- Bilinear interpolation