lomath v0.3.0
lomath
Lomath is a tensorial math library extended from lodash
, with performant math functions applicable to tensors(multi-arrays). It also has a standalone plotting module that using HighCharts
and BrowserSync
.
See the API documentation. For the included functions, see the lodash API documentation.
Community
Installation
Installation:
npm install lomath
To use the plotting module, do:
// in the terminal at your project's root, do:
cd node_modules/lomath
npm install
Usage
See the API documentation and lodash API documentation for example usage.
Lomath comes with the latest version of lodash
, and more. Use it as you would normally use lodash
or underscore
, and it has many math functions familiar to users of the R
language.
For clearer terminology, we call tensors
the generic data structures:
data structure | terminology |
---|---|
0 | scalar = rank-0 tensor |
[1, 2, 3] | vector = rank-1 tensor |
[[1, 2], [3, 4]] | matrix = rank-2 tensor |
...and so on | rank-n tensor |
You can also extend lomath
and define your own function that applies to tensors, using the function composition module such as _.distribute, _.asso
, etc.
Plotting Module
lomath
comes with a standalone plotting module that using HighCharts
and BrowserSync
. Just run your JS file normally when you plot (example below), and it will automatically pull up a browser showing you the charts; you can save them!
Demo: see demo/demo.js
for magic.
var _ = require('lomath');
// use lodash as usual
var v = _.range(10);
// lomath: generalized math functions applicable to multi-array
var vv = _.square(v);
console.log(v);
console.log(vv);
// prints all the functions in lomath
// console.log(_.functions(_));
// data visualization: highcharts plotter
// call contructor of highcharts plotter. Note the ()
var hc = _.hc();
// first, list all you wish to plot.
hc.plot(
[{
name: "linear",
data: v
}, {
name: "square",
data: vv
}],
"Title 1"
)
hc.plot(
[{
name: "log",
data: _.log(v)
}],
"Title 2"
)
//optionally you can use the original HighCharts plot options object by:
hc.advPlot(HighChartsOptions);
// Magic here! Finally, the command to render all the plots above.
// Pulls up a browser (default to chrome for better support) with the charts.
// calling hc.render(true) will autosave all plots to your downloads folder.
hc.render();
Roadmap
- add timer tick tock
- Multivar methods for ML: special dot, matrix mult, sum of expression using index, trace, det, inverse, logistic fn.
- add aliases
- add Randomjs engine
- higher dimensional math
- JSON object methods
- more stats methods: sample, multidim probs, covarience, distributions
- performance benchmark
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago