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!
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.
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.
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.
As it is in most languages with IEEE 754 floating-point. Though there are some odd ones which make it an error, because they think they know better than the IEEE 754 designers, which they don't.
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.
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!