I like Marco's approach best of all.  Many of us are looking less for a sparse linear algebra engine and more for an efficient C++ replacement of Matlab in digital signal processing and signal simulation.  What if, as we were going forward, and wrestled with design questions (ex: vectors as rows or cols), we asked ourselves: What would Matlab do?  

To expand the use of uBLAS in digital signal processing, what I suggest is:

* A clean interface to Fast Fourier Transforms. This implies the need to support operations that only really make sense for complex arguments like absolute value squared and arg().

* A clean way to generate sequences of uniform and Gaussian random numbers. 

* Better support for element-by-element multiplication and division.  If I go as far as to suggest that we overload operator*() and oprerator/() for this, will I be burned at the stake?  The rationale for using prod() for the actual b = A * x and the overload for C = A .* B is that the latter is really a much simpler operation, and it is likely to be used many many times in the same equation.

For examples of this in action, please look at the uBLAS package in our underwater acoustics model on the https://github.com/campreilly/UnderSeaModelingLibrary site.

In the short term, I may just Fork Marco's stuff and start migrating these pieces from our own work to his. 

Sean Reilly
Sent from my iPad

On Mar 23, 2013, at 10:48 AM, Nasos Iliopoulos <nasos_i@hotmail.com> wrote:

Marco,
this is quite some work you have put there. Thanks for sharing

-Nasos

On 03/23/2013 09:42 AM, sguazt wrote:

On Sat, Mar 23, 2013 at 1:47 PM, David Bellot <david.bellot@gmail.com> wrote:
Hi guys,

I proposed a Google Summer of Code project for uBLAS.
It's based on the wish list that has been done
some time ago a long time ago.

The main idea is to refactor vector into matrix to have only one internal and external representation, one set of algorithm. As a convenience, the class vector<> will still exist and will, for example, be by default a row-vector (like a simple C-array would be). Or a column-vector if we prefer but I think matlab is row-oriented by default (and I hate R which is column oriented, even if I use it every single day at work !!! :-D :-D ah ah ah ah ! Let the flame war begin)
.

OK, the idea behind this is to have a clean framework to enable optimization based on SSE, Neon, multi-core, ... you name it.
I'm sure the student who will work on that will take inspiration from boost::bindings, Eigen, Armadillo, etc...
The project is very open, so suggestions are most welcome.


Hello,

Thank you David.

Good to know that uBLAS is still alive :)

What I like to have in uBLAS is a richer math library like we have in MATLAB/Octave.
I've already begun a similar project some time ago, to use in some research project.
It uses the wonderful boost-numeric_bindings libs to interface with LAPACK.

Unfortunately I have too few time to maintain it and to provide boost-quality code.
Anyway, if someone or some GSOC student wants to contribute, the code is available on GitHub:

https://github.com/sguazt/boost-ublasx

Best,

-- Marco



_______________________________________________
ublas mailing list
ublas@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/ublas
Sent to: athanasios.iliopoulos.ctr.gr@nrl.navy.mil

_______________________________________________
ublas mailing list
ublas@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/ublas
Sent to: campreilly@gmail.com