lomath
v0.3.0
Published
Lomath is a tensorial math library extended from lodash.
Downloads
78
Maintainers
Readme
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