- Method to throw all methods into the global namespace; compute.mean() --> mean(). How to prevent methods from getting clobbered?
- Should methods explicitly handle cases where the input
array
is empty? e.g.,mean([]) === null
orNaN
, rather than returning0
, an initialized value.- How else to distinguish between a mean of
0
and having provided an emptyarray
? - Could also throw, but this may be a bit harsh. Type checking and throwing, okay, but throwing due to an empty
array
may be too disruptive. - see nanmin and nanmax
- see prod!!! --> returns
null
- How else to distinguish between a mean of
- performance optimization
- linspace/logspace/datespace/zip/
- use push for arrays longer than fast element limit
- see incrspace/incrdatespace
- linspace/logspace/datespace/zip/
- in all module examples, reuse compute modules (e.g., for computing sum, mean, etc) --> dev dependencies
- timeseries date utilities
- csv utilities
- json utilities
- tsv utilities
- other data formats (?)
- .jscs.json
- include jscs makefile target
- use jsdoc plugin
- reorganize stats modules
- descriptive
- nan
- incremental
- weighted
- moving
- multivariate
- pretty exponential
- does
Product
belong instats
? dido forsum
?- possibly move to arithmetic
- implement
then
method, which takes a callback to which data is returned - how to handle asynchronous computation? Currently, assume all synchronous tasks. If computations are outsourced to other languages, bindings, etc, which are asynchronous, how do we handle that? --> compute.async().roundn().mean()...
Modules requiring accessor fcns...
- abs
- sqrt
- erf
- erfc
- erfinv
- erfcinv
- multiply
- roundn
- diff
- eq
- neq
- isnumeric
- isnan
- isfinite
- isinteger
- isinf
- deg2rad
- rad2deg
- l1norm
- linfnorm
- cross
- ...all stats modules