Skip to content
This repository has been archived by the owner on Sep 10, 2022. It is now read-only.

Document for functions to be implemented #6

Open
Gaoooooo opened this issue Apr 20, 2022 · 0 comments
Open

Document for functions to be implemented #6

Gaoooooo opened this issue Apr 20, 2022 · 0 comments

Comments

@Gaoooooo
Copy link
Collaborator

Gaoooooo commented Apr 20, 2022

This list is not exhaustive but rather a reflection of what we have brainstormed to add so far.

Feel free to add comments or issues for new possible functions.

Mathjs functions:

Please note for these 'Mathjs functions', it's much easier to simply call mathjs. Here is an example:

/**
*
* @param - a - the first input to find the lcm of relative to the second input
* @param - b - the second input to find the lcm of relative to the first input
* @returns - Number representing the least common multiple between a and b. 
*/

function lcm(a,b) {

//check boundary cases...
//check types and validity of parameters...
// other misc checking before actually doing the logic..

//instead of writing the logic yourself, for these functions you can just do this:
let result = mathjs.lcm(a,b);
return result;

}

Now of course you can add some extra stuff to it like the lcm between 2 matrix like structures,(in which youd need to write your own logic) but the bare minimum is lcm of 2 numbers/integers. After this 'Mathjs functions', this is no longer applicable. See their website for examples and specifications if you need: https://mathjs.org/docs/reference/functions/lcm.html.

  • lsolveAll -> [rename as lsolve_all] (find ALL solutions of linear equation system)
  • usolveAll -> [rename as usolve_all] (find all solutions of linear equation system)
  • slu (sparse matrix LU decomposition) - do not do yet (unless you want to also write a data structure for sparse matrices lol)
  • lcm(a,b) (least common multiple of a,b)
  • log(x,[base]) (log of x given a base)
  • mod(x, y) (x modulo y)
  • eigs(x, [prec]) (eigenvalues of a matrix with a precision amount)
  • identity(n) (creates 2-d identity matrix with nxn size) -------- submission being reviewed --------
  • resize(x, size, [defaultValue]) (resize a matrix x to be of size ‘size’ and any new elements will have value ‘defaultValue’)
  • rotationMatrix(theta in radians) (creates a 2d counter clockwise rotation 2x2 rotation matrix for a given angle in radians
  • multinomial(a) ( computes number of ways of picking a1, a2, … ai unordered outcomes from n possibilities, where a is array of integers>=0)
  • mean & median (almost finished - only need to add dimension wise mean/medians, dimension 1 being rows, dimension 2 being cols, dim 3 for tensors, dim 4 etc.... it's an optional argument.
  • mode(a,b,c…) (mode of a list or matrix element wise)
  • std(a,b,c,....) (standard deviation of a list or matrix element wise) ----------- submission being reviewed --------------
  • variance (a,b,c,....)(variance of a list or matrix element wise) ----------------submission being reviewed --------------

Matlab:

Preprocessing data:

  • any_missing (determine if any array element is missing)
  • is_missing (find missing values)
  • rmmissing (remove missing entries)
  • fillmissing (fill missing values)
  • missing (create missing values)
  • standardize_missing (insert standard missing values)
  • is_outlier (find outliers in data)
  • fill_outliers (detect and replace outliers in data)
  • rm_outliers (detect and remove outliers in data)
  • is_local_min (find local minima)
  • is_local_max (find local maxima)
  • smooth_data (smooth noisy data)
  • trend_decomp (find trends in data)
  • normalize (normalize data)
  • Grouping and binning data?

Descriptive statistics:

  • maxk (find k largest elements of array) ---- submission being reviewed ------
  • bounds (find min and max of array)
  • mean/median/mode/std/var (covered in mathjs) ----- covered in mathjs, will consider if in need of expansion -----
  • iqr (interquartile range of data set)
  • quantile (quantiles of data set)
  • prctile (percentiles of data set) (-> rename as percentile?)
  • rms (root mean square value)
  • correcoef ( correlation coefficient)
  • cov (covariance)
  • xcorr (cross correlation)
  • xcov (cross-covariance)

Trigonometry: base code issue for now

Test matrices -

  • hardamard (hadamard matrix)
  • hankel (hankel matrix)
  • hilb (hilbert matrix)
  • invhilb (inverse of hilbert matrix)
  • magic (magic square)
  • pascal (pascal matrix)
  • toeplitz (toeplitz matrix)
  • vander (vander matrix)
  • wilkinson (wilkinsons eigenvalue test matrix)

Linear Algebra:

  • (not in matlab - convolution)
  • svd (singular value decomp)
  • lsq (least square solution to linear equation)
  • pinv (moore-penrose psuedoinverse)
  • lscov (least square solution in presence of knoffwn covariance)
  • eig (eigenvalues and eigenvectors in other contexts than mathjs)
  • eigs (subset of eigenvalues and eigenvectors)
  • schur (schur decomposition of a matrix)
  • hess (hessenberg form of a matrix)
  • qz (qz factorization for generalized eigenvalues)
  • funm (evaluate general matrix function)
  • kron (kronecker tensor product)
  • cross (cross product)
  • dot (dot product)
  • condeig (condition number with respect to eigenvalue)

Machine Learning: (https://github.com/Hedgehog-Computing/ml)

Linear regression (iterative method and numeric method)
Libsvm
Lasso
Logistic regression
Wrapper for tensorflow.js

  • Xgboost: the SOTA classical solver for machine learning
  • API and dataset:
  • Rapid API: using fetch or axios to fetch data “synchronously”
  • function rapidAPI(api_name, api_key) {... return result}
  • Kaggle.com

Graph and network algorithms
*data structures

(basic matrix octave) https://octave.org/doc/v4.2.0/Basic-Matrix-Functions.html#Basic-Matrix-Functions

(matrix factorizations plus more octave)
https://octave.org/doc/v4.2.0/Matrix-Factorizations.html#Matrix-Factorizations

(matlab mathematics functions)
https://www.mathworks.com/help/matlab/referencelist.html?type=function&listtype=cat&category=mathematics&blocktype=all&capability=&s_tid=CRUX_lftnav

(matlab all functions)
https://www.mathworks.com/help/matlab/referencelist.html?type=function&listtype=cat&category=index&blocktype=all&capability=&s_tid=CRUX_lftnav

Sparse matrices (Matlab functions) - speye (sparse identity), sprand (sparse uniformly distributed random matrix), sprandn (sparse normally distributed random matrix), sprandsym (sparse symmetric random matrix), sparse (create sparse matrix) issparse, nnz (number of nonzero elements), spfun (apply function to nonzero elements), sponges (replace nonzero elements with ones), find (find indices and values of nonzero elements), Reordering algorithm…. Iterative methods and preconditioners……eigenvalues and singular values…… structural analysis….. LATER

Diff eq/calculus - no symbolic somewhere else, not nerdamer though (last thing) (check other implementations of newton/diff eq methods open source)

Fourier analysis/filtering - yes, later

Iterative methods - newtons method, golden etc? In javascript? Not yet and somewhere else

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant