Skip to content

Future development

Patrick Gleeson edited this page Apr 12, 2021 · 3 revisions

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 debug implementation
  • 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, 3x3 and 4x4 matrices
  • Get rows (rows()) or columns (cols()) of a matrix

Statistics

  • Median

Proposed features

General

  • Unit tests for debug mode
  • Availability as an npm package
  • 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 indexOf to 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