Monday, August 16, 2010

Linear Algebra in C++

What ? Linear Algebra in C++, especially in Machine Learning, where almost everybody programs in Matlab ? Yes, because most of the time it's the language used in the industry. And not a bad one to be honest (please no language war here, I know many other languages are good, etc...). So, I'm the new manager of a Linear Algebra library called uBLAS. Yes, you're reading right, the one in the famous Boost libraries.

Boost is made of many libraries, focusing on templates programming and higher-order programming. One of them, uBLAS, is devoted to Linear Algebra. I created a companion website. It's one of the fastest library, however it lacks several things. We're working hard to improve that:
  1. documentation is was poor: I made a new one and still improving,
  2. no small SSE fast vectors, no GPU: we working already on this.
  3. I will change products prod(m1,m2)to a nicer m1*m2 directly.
  4. a new impressive assignment operator: it's easier and more powerful to fill in you matrices than Matlab now!
The new version 1.44 is out now, with a lot of improvements and it's just the beginning of the story. I invite everyone interested in linear algebra in C++ to join the project.

3 comments:

Mathias Gaunard said...

No interest in NT2, which provides a Matlab-like interface, and upon which we are building a Matlab compiler?

Mathias Gaunard said...

No interest in NT2, which provides a Matlab-like interface and upon which we are now building a Matlab compiler?

David said...

Of course NT2 looks very promising. I just need more time to study it.
For ublas, we could even take ideas from NT2 and Eigen. I also think, NT2 could be binded to Boost (like in boost::numeric::bindings). Anyway, it seems to be one of the great library of the moment.