
Numeric JavaScript - shawndumas
http://numericjs.com/
======
yig
This branch adds slicing and broadcasting as in numpy:
[https://github.com/orangeduck/numeric](https://github.com/orangeduck/numeric)

There are a few known bugs in mainline numericjs (including one in the eigen
decomposition when there are repeated eigenvalues). The author of numericjs is
active in the Google group, but hasn't had time to work on it in the last few
years. Hence the third-party, not integrated orangeduck branch.

This project, when I started using it 5 or 6 years ago, was the one that made
me realize just how fast JavaScript has become. This project also demonstrates
how desperately JavaScript needs operator overloading. When I used numericjs
for a homework assignment recently, I considered writing a sweetjs macro for
my students but didn't get around to it. I would be grateful if someone else
did!

~~~
rawnlq
To add another datapoint, I remember using numericjs a few months ago and the
parts I used were pretty buggy (iirc singular value decomposition for
nonsquare matrices didn't work). It is also oddly missing common stuff like
cross product which I thought I would find in a matrix/vector library.

Its implementation of "dot" is kind of nice though. Without worry about the
type, it does multiplying a scalar to a matrix, a matrix with a matrix, a
matrix with a vector, and a vector with a vector, etc all correctly.

------
japaget
Google cache:
[http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd...](http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CCIQIDAA&url=http%3A%2F%2Fwebcache.googleusercontent.com%2Fsearch%3Fq%3Dcache%3ArcwPwtghB88J%3Anumericjs.com%2F%2B%26cd%3D1%26hl%3Den%26ct%3Dclnk%26gl%3Dus&ei=JS4jVfCFIc2pogSBmoDABA&usg=AFQjCNFBfDtsr6PxeIQJ3OA4kPsFdS2IGg&sig2=yXPgzI5ppqynCL_q04xn6Q&bvm=bv.89947451,d.cGU)

------
mizzao
This code is very old. It also helps to explain why there are so many
libraries checked in directly to the repo instead of being installed by NPM,
etc.

EDIT: I guess it is also explained by the apparent fact that it was written by
a math professor before he was a professor.

------
timdorr
Github repo while the site is getting a Hug of Death:
[https://github.com/sloisel/numeric](https://github.com/sloisel/numeric)

------
frik
Great, and with the "workshop"
([http://numericjs.com/workshop.php](http://numericjs.com/workshop.php)) it's
like an JS based IPython or Mathematica.

------
IndianAstronaut
Very interesting library. I remember having a need for a symbolic algebra
library in JS some time back. While JS is not the main go to language for math
it is nice to have more development there.

------
bshimmin
I couldn't help but notice this slightly, uh, controversial part of the
codebase:

[https://github.com/sloisel/numeric/blob/656fa1254be540f42871...](https://github.com/sloisel/numeric/blob/656fa1254be540f428710738ca9c1539625777f1/workshop.php#L153-L154)

~~~
kbenson
One can always hope they aren't using it's more recent social definition.

 _delay or hold back in terms of progress, development, or accomplishment_

~~~
bshimmin
That seems a little overly charitable, given the context...

It appears to be checking whether the browser is Internet Explorer, and
creating a Web Worker polyfill if it is - which, naming conventions aside,
really isn't such a good strategy.

There's also a lot of `var foo` in that file; I don't know if it says much
about the quality of code in the rest of the project (maybe this is just a
file slapped together in a hurry), but it doesn't particularly inspire
confidence.

In fact, on closer investigation, there's a lot of `var foo` in this file too:
[https://github.com/sloisel/numeric/blob/master/src/numeric.j...](https://github.com/sloisel/numeric/blob/master/src/numeric.js)

